使用 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];
}
}
}
}
注:在网上找的方法,权作记录。