UITextView中限定字数的中文输入法如何处理?
目前面临的一个问题是,给定一个UITextView,限定只能输入10个字,但是用中文输入法,输入到6个就会给我自动填充为英文。例如我中文输入法输入“我我我”textView shouldChangeTextInRange给我截取成“wo wo wo”。
当textView.markedTextRange == nil的时候代表没有拼音与输入的字符
- (void)textViewDidChange:(UITextView *)textView{
if(textView.markedTextRange == nil){
NSLog(@"没有预输入的文字--%@", textView.text);
if(textView.text.length>10){
UIAlertController * alertController = [UIAlertController alertControllerWithTitle:@"提示" message:@"输入的文字超过10个" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"好的" style:UIAlertActionStyleDefault handler:nil];
[alertController addAction:okAction];
[self presentViewController:alertController animated:YES completion:nil];
textView.text = [textView.text substringToIndex:10];
}else if([textView.text rangeOfString:@" "].location != NSNotFound){
UIAlertController * alertController = [UIAlertController alertControllerWithTitle:@"提示" message:@"请不要输入空格" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"好的" style:UIAlertActionStyleDefault handler:nil];
[alertController addAction:okAction];
[self presentViewController:alertController animated:YES completion:nil];
textView.text = [textView.text substringToIndex:textView.text.length-1];
}
}else{
NSLog(@"有预输入的文字--%@", textView.text);
}
}
网友评论