我目前正在开发一个主要是日语(辅助英语)市场的应用程序,并且我发现我无法为文本字段设置UIKeyboardType
,并且如果使用十键/滑动风格的日语键盘,它将实际工作。即使UIKeyboardType
应适当响应,UIKeyboardType默认语言键盘覆盖吗?
userIdField = [[[UITextField alloc] initWithFrame:CGRectMake(120, 5, 185, 35)]autorelease];
userIdField.delegate = self;
userIdField.keyboardType = UIKeyboardTypeASCIICapable;
userIdField.autocorrectionType = UITextAutocorrectionTypeNo;
userIdField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
userIdField.returnKeyType = UIReturnKeyDone;
userIdField.autocapitalizationType = UITextAutocapitalizationTypeNone;
userIdField.backgroundColor = [UIColor clearColor];
[cell addSubview:userIdField];
当我点击文本字段,将打开默认的日本十数字式键盘。我试过UIKeyboardTypeASCIICapable
,UIKeyboardTypeURL
,UIKeyboardTypeEmailAddress
,UIKeyboardTypeNamePhonePad
,他们总是显示默认的tenkey日文键盘。我知道代码正在被读取,因为设置UIKeyboardTypePhonePad
的工作没有缺陷,但由于某些原因,手机将不会显示除默认日文键盘之外的任何内容。
有什么方法可以解决这个问题吗?或者这是自创建以来就存在的错误吗?如何强制用户使用只能输入字母,数字,“_ /。字符的键盘”
使用Hangul(韩语)键盘时,它会偶尔工作 - ASCII键盘输入正常,URL键盘出现对于ASCIICapable,看着UITextInputTraits.h文件,它说: UIKeyboardTypeASCIICapable, // Displays a keyboard which can enter ASCII characters, non-ASCII keyboards remain active
这是没有任何意义的,因为韩文和日文都是非ASCII的,但Hangul + ASCIICapable = ASCII(尽管它应该是韩语,因为它是非ascii),而日本的tenkey + ASCIICapable =日本的tenkey。
我看到其他文章以编程方式改变键盘语言,这是无法完成的,但这个问题更关注于问为什么有点由UIKeyboardType指定的键盘不显示。