我目前正在开发一个主要面向日语(次要英语)市场的应用程序,我发现UIKeyboardType
如果使用 Tenkey/flick 风格的日语键盘,我无法设置文本字段并使其实际工作。即使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];
当我点击文本字段时,它将打开默认的日文 Tenkey 风格键盘。我试过UIKeyboardTypeASCIICapable
, UIKeyboardTypeURL
, UIKeyboardTypeEmailAddress
,UIKeyboardTypeNamePhonePad
它们总是显示默认的十键日文键盘。我知道正在读取代码,因为设置UIKeyboardTypePhonePad
可以正常工作,但由于某种原因,手机除了默认的日文 Tenkey 键盘外不会显示任何内容。
有没有办法解决这个问题,或者这是一个自古以来就存在的错误?如何强制用户使用只能输入字母、数字、“_/.”字符的键盘?
使用韩文(韩文)键盘,它偶尔会工作 - ASCII 键盘可以正常使用,url 键盘可以使用带有 .com 按钮的韩文。对于 ASCIICapable,查看 UITextInputTraits.h 文件,它说:
UIKeyboardTypeASCIICapable, // Displays a keyboard which can enter ASCII characters, non-ASCII keyboards remain active
这没有任何意义,因为韩文和日文都是非 ASCII,但韩文 + ASCIICapable = ASCII(虽然它应该是韩文,因为它是非 ascii) , 而日语 Tenkey + ASCIICapable = 日语 Tenkey。
我看到其他有关以编程方式更改键盘语言的帖子,这是无法完成的,但这个问题更侧重于询问为什么 UIKeyboardType 指定的键盘类型没有出现。