字数限制

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

            }

        }

    }

}

 

转载于:https://www.cnblogs.com/xiaodeng90/p/9584943.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值