UITextView 限制输入字数时英文字母被输入的问题

使用 UITextView 限制输入个数后,当输入个数临近设置的最大字数时,连续输入拼音,就会出现拼音字母被输入进 UITextView 的问题。
解决方法如下:

- (void)textViewDidChange:(UITextView *)textView {

    if ([textView isEqual:self.titleField]) {
        NSString *inputModel = textView.textInputMode.primaryLanguage; // 获取键盘输入模式
        if ([inputModel isEqualToString:@"zh-Hans"]) { // 判断是否为中文输入模式
            UITextRange *selectedRange = [textView markedTextRange];
            UITextPosition *position = [textView positionFromPosition:selectedRange.start offset:0];
            // 此时不在输入文字状态,对文字进行处理
            if (!position) {
                if (textView.text.length > title_maxLength) {
                    textView.text = [textView.text substringToIndex:title_maxLength];
                }
            } else{
                // 输入状态,不作处理
            }
        } else {
            // 其他文字类型
            if (textView.text.length > title_maxLength) {
                textView.text = [textView.text substringToIndex:title_maxLength];
            }
        }
    } 
}

注:在网上找的方法,权作记录。

你可能感兴趣的:(UITextView 限制输入字数时英文字母被输入的问题)