在使用UITextField或UITextView实时实时计算content的长度的时候,如果在拼音输入后,但没有选择具体是哪个字时,这时的计算可能会出现一些偏差。这是就用到了markedTextRange。
可以发现UITextField或UITextView输入文字的时候输入的文字会有两个状态——选中与未选中。当我们输入拼音但未选择具体汉字时,处于未选中状态,此时UITextField或UITextView的markedTextRange为nil。如果我们想过滤拼音,不妨可以这么做:
self.textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
- (void)textFieldDidChange:(UITextField *)textfield
{
if (textfield.markedTextRange == nil) {
NSLog(@"%@",textfield.text);
}
}
网友评论