ios UITextField 禁止输入emoji字符

时间:2022-11-06 23:42:02

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这种特殊字符了。


另外,对于粘帖过来的字符,大家看看有无方法阻止。