UITextInputMode不适用于iOS 13中的英语十进制填充

时间:2019-10-28 12:31:55

标签: swift uitextfield uikit ios13 uitextinputtraits

我的应用程序中有两个本地化版本(英语和阿拉伯语)。我已经将许多UITextField的Keyboard type设置为 decimalPad 我需要为这些字段强制使用仅英语小数点。但是,当应用语言为阿拉伯语时,键盘将以阿拉伯语显示。在iOS 12之前,通过继承UITextField并覆盖 textInputMode ,它可以正常工作。这是代码:

override var textInputMode: UITextInputMode? {
    for mode in UITextInputMode.activeInputModes {
        if mode.primaryLanguage?.containsSubString(subString: "en") {
            return mode
        }
    }
    return nil
}

在iOS 13中,以上代码无效。我关注了Showing the system Emoji keyboard by default on iOS 13。覆盖textInputContextIdentifier,但仍然没有成功。

override var textInputContextIdentifier: String? { return "en-US" }

PS:它适用于其他键盘类型-数字,ASCII等。仅在十进制键盘上会出现问题。

0 个答案:

没有答案