1

アプリには 2 つのローカライズがあります (英語とアラビア語)。多くの UITextFields のキーボード タイプをdecimalPadに設定しました。これらのフィールドには、英語のみの小数点を強制する必要があります。ただし、アプリの言語がアラビア語の場合、キーパッドはアラビア語で表示されます。UITextField をサブクラス化し、 textInputModeをオーバーライドすることにより、iOS 12 まで正常に動作します。コードは次のとおりです。

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

iOS 13 では、上記のコードは効果がありません。iOS 13 でデフォルトでシステム絵文字キーボードを表示するに従いました。textInputContextIdentifier をオーバーライドしますが、それでも成功しません。

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

PS: Number、Asci などの他のキーボード タイプでも問題なく動作します。問題は小数点パッドでのみ発生します。

4

0 に答える 0