我建立在台湾发布的应用程序,所以这将是大多是在中国不过用户名必须为英语。 我不知道如何从被输入停止从中国文字。 到目前为止,我已经限制用户名的长度为12个字符和字符必须在该组定义如下:
#define ACCEPTABLE_CHARACTERS @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
我实现了 - (BOOL)文本框:(*的UITextField)文本框shouldChangeCharactersInRange:(NSRange)范围replacementString:(的NSString *)字符串方法,现在我的UITextField适用于上述两个条件。 然而,由于使用拼音输入是英语虽然中国字符不在设定它仍会出现。 即李李是这样我能够L型,然后我再出现在中国字符李。 反正是有解决这个问题? 任何帮助将不胜感激。 谢谢
尝试设置输入字段的键盘类型
UITextField *tf = [[UITextField alloc] initWithFrame:CGRectZero];
tf.keyboardType = UIKeyboardTypeASCIICapable;
使用该
-(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;
}
文章来源: How do I restrict UITextField to English only? (Stopping Chinese pinyin input)