本文是参考知乎上文章后,我根据需求修改的:
链接:https://www.zhihu.com/question/20443350/answer/26916231
1.给uitextfiled增加一个 消息处理:
[mInputField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
2.在textFieldDidChange中,就可以接收到,所有的输入,但是需要将选中态时的拼音排除掉。
UITextRange *selectedRange = [textfield markedTextRange];
NSString * newText = [textfield textInRange:selectedRange];
//获取高亮部分
if(newText.length>0)
if ([self judgeInputIsChinese:textStr]) { //判断输入的是否是汉字
此时textField.text就是去除拼音后的汉字了
return newText;
}
这样获得的就是我们需要的结果了。
判断输入的是否是汉字,yes是输入汉字, No不是汉字
- (BOOL)judgeInputIsChinese:(NSString *)textStr{
NSString *regex = @"[\u4e00-\u9fa5]";
NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
BOOL isMatch = [pred evaluateWithObject:textStr];
return isMatch;
}
网友评论