iOS输入限制字数时,避免与中文拼音拼写板冲突

时间:2021-07-19 17:58:16

描述:

      textView输入文本有字数限制,比如100个字符。

      直接用textView.text = [textview.text substringToIndex:100]来截取到100前的字符,会将键盘预输入的拼音都算入其中,导致到了100时,textView的text直接变成键盘中预输入的拼音。

 

解决办法:

判断预输入,预输入文字不计入

 

- (void)textViewDidChange:(UITextView *)textView{
    NSString  *nsTextContent = textView.text;
    NSInteger existTextNum = nsTextContent.length;

    if (textView.markedTextRange == nil) {
        // 没有预输入文字
        if (existTextNum > 100){
            //截取到最大位置的字符
            NSString *s = [nsTextContent substringToIndex:100];
            [textView setText:s];
        }
    }
}

 

BY-Chu

参考方案