UITextField在输入时 其delegate会执行
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;
判断是否输入字符
[UITextInputMode currentInputMode] 可以获得当前的键盘输入模式,
如
[[UITextInputMode currentInputMode] primaryLanguage]是"emoji"时是表情符输入模式
所以这样写
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString*)string{
if ([[[UITextInputMode currentInputMode] primaryLanguage] isEqualToString:@"emoji"]) {
return NO;
}
return YES;
}
就可以阻止输入emoji这种特殊字符了。
另外,对于粘帖过来的字符,大家看看有无方法阻止。