码迷,mamicode.com
首页 > 其他好文 > 详细

字数限制

时间:2018-09-04 16:56:55      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:show   ica   没有   position   shu   edit   self   edr   sele   

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];

            }

        }

    }

}

 

字数限制

标签:show   ica   没有   position   shu   edit   self   edr   sele   

原文地址:https://www.cnblogs.com/xiaodeng90/p/9584943.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!