美文网首页很常
iOS 限制输入框的字数

iOS 限制输入框的字数

作者: 路边的风景呢 | 来源:发表于2021-02-22 18:06 被阅读0次

    首先写个通知 监听输入框开始编辑。

    [NSNOTIFICATIONCENTER addObserver:self selector:@selector(textFiledEditChanged:) name:UITextFieldTextDidChangeNotification object:nil];

    然后  MaxCount 最大字数限制 看需求。

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

        NSString*toBeString =self.textFiled.text;

        NSString *lang = [[UITextInputMode currentInputMode] primaryLanguage]; // 键盘输入模式

        if ([lang isEqualToString:@"zh-Hans"]) { // 简体中文输入,包括简体拼音,健体五笔,简体手写

            UITextRange*selectedRange = [self.textFiledmarkedTextRange];

            //获取高亮部分

            UITextPosition*position = [self.textFiledpositionFromPosition:selectedRange.startoffset:0];

            // 没有高亮选择的字,则对已输入的文字进行字数统计和限制

            if(!position) {

                if(toBeString.length>MaxCount) {

                    [MySVProgressHUDshowSuccessWithStatus:@"已超过最大字数限制"];

                    self.textFiled.text= [toBeStringsubstringToIndex:MaxCount];

                }

            }

            // 有高亮选择的字符串,则暂不对文字进行统计和限制

        }

        // 中文输入法以外的直接对其统计限制即可,不考虑其他语种情况

        else{

            if(toBeString.length>MaxCount) {

                [MySVProgressHUD showSuccessWithStatus:@"已超过最大字数限制"];

                self.textFiled.text= [toBeStringsubstringToIndex:MaxCount];

            }

        }

    }

    最后记得 移除通知

    - (void)dealloc{

        [NSNOTIFICATIONCENTER removeObserver:self name:@"UITextViewTextDidChangeNotification" object:nil];

    }

    相关文章

      网友评论

        本文标题:iOS 限制输入框的字数

        本文链接:https://www.haomeiwen.com/subject/reykfltx.html