iOS - 从 NSUserDefaults 调用特定键盘

iOS - Call specific keyboard from NSUserDefaults

有没有办法将键盘名称转换为 UIKeyboardType 或其他可用作键盘的类型?

这是我的。假设设备安装了特定语言的键盘(比如日语),我可以检查 NSUserDefaults 并获取设备列表,如下所示:

NSArray *arrayOfKeyboardNames = [defaults arrayForKey:@"AppleKeyboards"];

在我的例子中,returns 4 个键盘名称:

"en_US@hw=US;sw=QWERTY",
"emoji@sw=Emoji",
"ja_JP-Kana@sw=Kana;hw=US",
"ru_RU@sw=Russian"

然后我要做的是将 ja_JP-Kana@sw=Kana;hw=US 的键盘设置为 UITextField 的输入类型。 理想情况下,这将适用于整个应用程序,而不仅仅是一个字段,但目前这可能有效。

问题是 UITextField 只接受枚举作为键盘类型,这显然不是枚举值。

有办法吗? 最终结果应该是当用户触摸 UITextField 时出现日文键盘。

没有 public API 可以让您切换键盘。完全由用户通过点击键盘上的小地球键来控制。

UITextInputMode class 提供了一种查看可用键盘但没有 API 进行设置的方法。