无法在iOS上使用非QWERTY键盘键入

adi*_*dib 6 iphone cocoa-touch internationalization ios ios5

我的iPhone应用程序似乎无法使用不使用类似美国QWERTY布局的软键盘.那时我将键盘设置为法语或德语,甚至文本字段也不能接收文本,并且No input manager class for input mode控制台中显示错误消息错误(在Xcode下调试时).切换到表情符号键盘也会出现同样的问题.但问题不会发生在QWERTY键盘布局上,如荷兰语和印尼语键盘.

所有情况都是一致的,可重复的设备(iPhone 4)和iPhone模拟器.这些是Xcode调试器控制台中的错误消息

当键盘设置为法语时:

No input manager class for input mode: fr_FR

当键盘设置为德国时:

No input manager class for input mode: de_DE

当键盘设置为表情符号时:

No input manager class for input mode: emoji

我的应用程序的部署目标是iOS 3.1.3(我仍然支持第一代设备),但开发环境是Xcode 4.3.1和iOS 5.1 Simulator.(我不知道这是否相关,但以防万一).

任何人都可以帮忙解决这个问题?

提前致谢.

lhu*_*ath 2

就我而言,这是由我的调整-[NSBundle infoDictionary]和返回原始字典的副本引起的。

我这样做是为了能够在运行时更改信息字典值(具体来说,提供非缩短的捆绑显示名称来替换主屏幕上使用的缩短的值)。

修复方法是不返回信息字典的副本,而是使用更多的反射魔法来处理从字典中获取的每个键:

https://github.com/Lyndir/Pearl/blob/master/Pearl/NSBundle%2BPearlMutableInfo.m