我目前正在开发一个主要是日语(中级英语)市场的应用程序,我发现我无法为文本字段设置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
,并且始终显示默认的十键日语键盘。我知道正在读取代码,因为设置UIKeyboardTypePhonePad
没有任何缺陷,但由于某种原因,手机除了默认的日语十键键盘外不会显示任何内容。
有没有办法解决这个问题,或者这是一个自时间开始以来就存在的错误?如何强制用户使用只能输入字母,数字,“_ /。字符?
的键盘使用韩文(朝鲜语)键盘,偶尔工作 - ASCII键盘正常,网页键盘出现Hangul,带有.com按钮。对于ASCIICapable,查看UITextInputTraits.h文件,它说:
UIKeyboardTypeASCIICapable, // Displays a keyboard which can enter ASCII characters, non-ASCII keyboards remain active
这没有任何意义,因为韩语和日语都是非ASCII,但是Hangul + ASCIICapable = ASCII(虽然它应该是朝鲜语,因为它是非ascii),而日语十键+ ASCIICapable =日语十键。
我看到其他有关以编程方式更改键盘语言的帖子,这是无法完成的,但这个问题更侧重于询问为什么UIKeyboardType指定的键盘类型没有出现。
答案 0 :(得分:0)
显示日语十键键盘的原因是因为它技术上是一个ASCIICapable键盘,即使您必须先单击ABC
按钮使键盘更改为ASCII输入。我已经想到了解决这个问题的方法,尽管它很复杂并且充满了问题:
如果你犯了错误并且想要编辑文本,那么你必须做一堆其他代码才能使它正常工作,分配第一响应者等(比如确保输入文本时,它输入到正确位置的底部文本区域。)
这显然不是最佳解决方案。