将逗号更改为小数点中的句点,忽略当前设备区域设置

5 keyboard input decimal-point uitextfield swift

我有一个UITextField,它的键盘类型是DecimalPad

该应用程序仅支持一种语言(意大利语),并且小数点显示逗号而不是句点作为小数点分隔符。

我需要将该逗号更改为句点,以便无论用户设备设置为哪种语言环境,我都始终使用句点作为小数点分隔符。

我尝试对文本字段进行子类化并覆盖变量textInputMode: UITextInputMode(然后我将自定义类分配给文本字段),但是它不起作用。我认为以下内容会立即更改逗号:

 override var textInputMode: UITextInputMode? {
        for t in UITextInputMode.activeInputModes {
            if t.primaryLanguage == "en-EN" {
                return t
            }
        }
        return super.textInputMode
    }
Run Code Online (Sandbox Code Playgroud)

有什么办法可以做我想做的事还是不可能?

我发现了一些类似的问题,但没有明确的答案。

这不是一个重复的问题:您混淆了DecimalPad和默认的iOS文本键盘。情况有所不同。而且,该文章中的解决方案是不可接受的,因为它可以让您在键盘之间切换,而我不是这种情况,因为这会引起很多问题。

据我所知,没有办法使用DecimalPad进行操作,我发现的唯一解决方案可能涉及创建完全自定义的键盘