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

时间:2012-03-17 16:15:59

标签: iphone ios cocoa-touch ios5 internationalization

我的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。 (我不知道这是否相关,但以防万一)。

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

提前致谢。

2 个答案:

答案 0 :(得分:2)

在我的情况下,这是由我的混合-[NSBundle infoDictionary]引起并返回原始字典的副本。

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

修复是不返回信息字典的副本,但是从字典中获得的每个键都有一些反射魔术处理:

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

答案 1 :(得分:1)

不确定此答案是否会对您有所帮助,但我通过以下链接找到了答案:http://code.google.com/p/networkpx/wiki/Creating_Keyboard_Bundles

无论如何,这就是我所说的:

  

与UIKeyboardLayoutClass一样,此字段也可以使用   相同的“= xxx”语法。您也可以编写自己的类名   输入管理员课程。

     

如果缺少此字段,则不会使用任何输入管理器。

希望这会对你有帮助!