字数限制

Posted xiaodeng90

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字数限制相关的知识,希望对你有一定的参考价值。

text field

 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textViewEditChanged:) name:UITextFieldTextDidChangeNotification object:nil];

 

/**

 *  当 text field 文本内容改变时 会调用此方法

 *

 *  @param notification

 */

-(void)textViewEditChanged:(NSNotification *)notification{

    

    // 拿到文本改变的 text field

    UITextField *textField = (UITextField *)notification.object;

    // 需要限制的长度

    NSUInteger maxLength = 10;

 

    if (maxLength == 0) return;

    

    // text field 的内容

    NSString *contentText = textField.text;

    

    // 获取高亮内容的范围

    UITextRange *selectedRange = [textField markedTextRange];

    // 这行代码 可以认为是 获取高亮内容的长度

    NSInteger markedTextLength = [textField offsetFromPosition:selectedRange.start toPosition:selectedRange.end];

    // 没有高亮内容时,对已输入的文字进行操作

    if (markedTextLength == 0) {

        // 如果 text field 的内容长度大于我们限制的内容长度

        if (contentText.length > maxLength) {

            // 截取从前面开始maxLength长度的字符串

            //            textField.text = [contentText substringToIndex:maxLength];

            // 此方法用于在字符串的一个range范围内,返回此range范围内完整的字符串的range

         //   [MBProgressHUD showError:@"只能输入10字" addView:nil];

            NSRange rangeRange = [contentText rangeOfComposedCharacterSequencesForRange:NSMakeRange(0, maxLength)];

            textField.text = [contentText substringWithRange:rangeRange];

        }

    }

    

}

 

textView

在代理方法中 

- (void)textViewDidChange:(UITextView *)textView{

    if (textView.text.length==0) {

        placeLbl.hidden = NO;

    }else{

        placeLbl.hidden = YES;

        NSUInteger maxLength = 20;

        if (maxLength == 0) return;

        

        // textview 的内容

        NSString *contentText = textView.text;

        // 获取高亮内容的范围

        UITextRange *selectedRange = [textView markedTextRange];

        // 这行代码 可以认为是 获取高亮内容的长度

        NSInteger markedTextLength = [textView offsetFromPosition:selectedRange.start toPosition:selectedRange.end];

        // 没有高亮内容时,对已输入的文字进行操作

        if (markedTextLength == 0) {

            // 如果 textview 的内容长度大于我们限制的内容长度

            if (contentText.length > maxLength) {

                // 截取从前面开始maxLength长度的字符串

                //            textField.text = [contentText substringToIndex:maxLength];

                // 此方法用于在字符串的一个range范围内,返回此range范围内完整的字符串的range

            //    [MBProgressHUD showError:@"内容只能输入20字" addView:nil];

                NSRange rangeRange = [contentText rangeOfComposedCharacterSequencesForRange:NSMakeRange(0, maxLength)];

                _textView.text = [contentText substringWithRange:rangeRange];

            }

        }

    }

}

 

以上是关于字数限制的主要内容,如果未能解决你的问题,请参考以下文章

spire.doc 替换word文件有没有字数限制

文本框字数限制问题!急!!!!!!

文字编辑框,如何限制行数,和每行的字数?

工作总结 input 限制字数 textarea限制字数

怎么实现CSS限制字数,超出部份显示点点点

怎么实现CSS限制字数,超出部份显示点点点