iOS textView的拼音输入预输入问题

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);
    }
}

你可能感兴趣的:(iOS textView的拼音输入预输入问题)