我目前正在开发一个主要是日语(二级英语)市场的应用程序,我发现我无法将UIKeyboardType设置为textfield并使其在使用10键/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];当我点击textfield时,它将打开默认的日本语柔键式键盘。我试过UIKeyboardTypeASCIICapable,UIKeyboardTypeURL,UIKeyboardTypeEmailAddress,UIKeyboardTypeNamePhonePad,他们总是显示默认的日本键盘。我知道正在读取代码,因为设置UIKeyboardTypePhonePad是没有缺陷的,但出于某种原因,除了默认的日本柔键键盘之外,手机不会显示任何东西。
有什么办法解决这个问题吗,或者说这是一个从时间一开始就存在的错误?如何强迫用户使用只能输入字母表、数字、"_/.“字符的键盘?
使用Hangul (韩语)键盘,它偶尔工作- ASCII键盘显示的很好,url键盘上有一个.com按钮。对于ASCIICapable,查看UITextInputTraits.h文件时,它会说:UIKeyboardTypeASCIICapable, // Displays a keyboard which can enter ASCII characters, non-ASCII keyboards remain active (它没有任何意义,因为Hangul和日语都是非ASCII ),但是Hangul + ASCIICapable =ascii(虽然它应该是Hangul,因为它是非ascii),而日语tenkey + ASCIICapable =日语tenkey。
我看到了关于以编程方式更改键盘语言的其他帖子,但这个问题更多地是想问为什么UIKeyboardType指定的键盘没有出现。
发布于 2012-11-29 05:26:39
之所以显示日本的10键键盘,是因为它在技术上是一个ASCIICapable键盘,尽管您必须首先单击ABC按钮才能将键盘更改为ASCII输入。我想出了一个办法来解决这个问题,尽管它是复杂的,充满了问题:
如果你犯了一个错误,想要编辑文本,那么你必须做一堆其他的代码才能让它正常工作,分配第一个响应程序等等(比如确保当文本被输入时,它被输入到正确的位置的底部文本字段中)。
这显然不是一个最佳的解决办法。
https://stackoverflow.com/questions/13619244
复制相似问题