我一直在努力快速解决这个问题iPhone: Change Keyboard language programmatically,但发现无法解决的问题,

此方法使我的应用程序崩溃

UITextInputMode.activeInputModes() //this crashes

此方法是在Objective C中此方法的快速模拟形式
 [UITextInputMode activeInputModes] //this works ok

这是崩溃

所以我的问题是:这是Swift中的错误吗?还是我做错了什么?

最佳答案

这似乎是iOS 9 SDK的错误。

Objective-C标头如下:

+ (NSArray<NSString *> *)activeInputModes; // The activate input modes.

应该是:
+ (NSArray<UITextInputMode *> *)activeInputModes; // The activate input modes.

肮脏的解决方法:
let aaa = (UITextInputMode.self as AnyObject as! NSObject).performSelector("activeInputModes").takeRetainedValue()

您应该尽快将错误报告发送给Apple。

10-06 10:31