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

描述:

      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

参考方案

 

posted @ 2020-01-31 21:31  WidgetBox  阅读(576)  评论(0编辑  收藏  举报