很常

iOS 限制输入框的字数

2021-02-22  本文已影响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];

}

上一篇下一篇

猜你喜欢

热点阅读