如何将 UITextField 限制为仅英语? (停止中文拼音输入)
How do I restrict UITextField to English only? (Stopping Chinese pinyin input)
我正在构建一个要在台湾发布的应用程序,因此它主要是中文,但用户名必须是英文。我不确定如何阻止输入汉字。到目前为止,我已将用户名的长度限制为 12 个字符,并且字符必须在下面定义的集合中:
#define ACCEPTABLE_CHARACTERS @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
我实现了 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 方法,现在我的 UITextField 适用于上述两种情况。然而,虽然汉字不在集合中,但由于使用拼音输入它是英文,所以它仍然出现。即李是 li 所以我可以输入 l 然后输入 i 然后出现汉字李。无论如何要解决这个问题?任何帮助将不胜感激。谢谢
用过这个
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
NSCharacterSet *numbersOnly = [NSCharacterSet characterSetWithCharactersInString:@"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"];
NSCharacterSet *characterSetFromTextField = [NSCharacterSet characterSetWithCharactersInString:string];
BOOL stringIsValid = [numbersOnly isSupersetOfSet:characterSetFromTextField];
if(stringIsValid){
return yes;
else
return no;
}
尝试设置输入框的键盘类型
UITextField *tf = [[UITextField alloc] initWithFrame:CGRectZero];
tf.keyboardType = UIKeyboardTypeASCIICapable;
我正在构建一个要在台湾发布的应用程序,因此它主要是中文,但用户名必须是英文。我不确定如何阻止输入汉字。到目前为止,我已将用户名的长度限制为 12 个字符,并且字符必须在下面定义的集合中:
#define ACCEPTABLE_CHARACTERS @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
我实现了 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 方法,现在我的 UITextField 适用于上述两种情况。然而,虽然汉字不在集合中,但由于使用拼音输入它是英文,所以它仍然出现。即李是 li 所以我可以输入 l 然后输入 i 然后出现汉字李。无论如何要解决这个问题?任何帮助将不胜感激。谢谢
用过这个
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
NSCharacterSet *numbersOnly = [NSCharacterSet characterSetWithCharactersInString:@"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"];
NSCharacterSet *characterSetFromTextField = [NSCharacterSet characterSetWithCharactersInString:string];
BOOL stringIsValid = [numbersOnly isSupersetOfSet:characterSetFromTextField];
if(stringIsValid){
return yes;
else
return no;
}
尝试设置输入框的键盘类型
UITextField *tf = [[UITextField alloc] initWithFrame:CGRectZero];
tf.keyboardType = UIKeyboardTypeASCIICapable;