【问题标题】:Cannot type using non-QWERTY keyboards on iOS无法在 iOS 上使用非 QWERTY 键盘打字
【发布时间】:2012-04-02 20:10:30
【问题描述】:

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

谁能帮忙解决这个问题?

提前致谢。

【问题讨论】:

  • 很难说出处是什么,我想新项目没有问题吧?创建一个用于测试并逐个添加使用的框架会很有帮助,它可能会帮助您找到过时的框架或在提交错误时向 Apple 提供更多详细信息。
  • 是的,新项目不会出现此问题。
  • 我建议您将错误项目中的所有框架一一包括到一个新项目中。这将帮助您识别问题、向框架开发人员解决问题并在此处发布提示作为答案。

标签: iphone ios cocoa-touch ios5 internationalization


【解决方案1】:

不确定这个答案是否对你有帮助,但我是从这个链接找到的:http://code.google.com/p/networkpx/wiki/Creating_Keyboard_Bundles

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

与 UIKeyboardLayoutClass 一样,该字段也可以使用 相同的“=xxx”语法。也可以写自己的类名 在此处输入管理器类。

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

希望对您有所帮助!

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

    • 就我而言,我只是删除了 [NSBundle infoDictionary] 的实现
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-01
    • 1970-01-01
    • 2020-07-29
    • 2015-02-08
    • 1970-01-01
    • 2019-08-03
    • 2019-03-30
    相关资源
    最近更新 更多