当在IB或以如下方式编程为UITextField设置键盘时。
[textFieldOutlet setKeyboardType:UIKeyboardTypeEmailAddress];
键盘有一个表情符号图标,这意味着您可以在电子邮件地址中输入表情符号(这有点糟糕)。能否禁用此功能?我知道我可以将类型更改为ASCIICapable,但这样就无法轻松访问@和.符号。
我通过使用以下方法解决了这个问题,它只是防止输入表情符号,但按钮仍然存在(参考MeganZhou的回答)。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if ([textField isFirstResponder])
{
if ([[[textField textInputMode] primaryLanguage] isEqualToString:@"emoji"] || ![[textField textInputMode] primaryLanguage])
{
return NO;
}
}
return YES;
}
我也注意到在Mail中输入电子邮件地址时,该图标也会出现。
这是iOS8系统,但此功能可能也存在于早期的版本中。