我如何将Swift Swift Decimal Pad用DOT而不是逗号强制,而不论语言环境如何



在Swift中,当我们选择键盘样式作为小数板时,它以10个数字和分离器的形式取决于您是哪个国家。例如,在俄罗斯,默认小数分隔符为',而在美国是"。

在我的应用程序中,我只想显示带有点'的十进制垫。

都没关系。

我不想发生这种情况
我想在每个设备中发生这种情况!

这不是要显示正确的键盘语言。
这是关于强迫小数分离器符号为'。(点)应用程序用户拥有的任何位置。
例如,我们可以从产品'''option>选项>应用程序区域中施加locatizaton ->设置给我们。但是我只需要更改十进制符号,而不是整个本地化。

sublass your textfield和覆盖uiresponder.textinputmode,然后返回uitextinputmode.primarylanguage

我知道这不再是2017年,但是...覆盖Uitextfield非常容易。

class EnglishTextField: UITextField {
    override var textInputMode: UITextInputMode? { return EnglishInputMode() }
}
class EnglishInputMode : UITextInputMode {
    override var primaryLanguage: String? { "en-US" }
}

然后在您的情节板中的uitextfield的身份检查员中,将课程(顶部)设置为EnglishTextfield。

除了一个问题外,此功能很好:2019年,在显示键盘之前从未查询过"主要语言",因此它根本无济于事。

我仍然希望自己找到答案。就我而言,我正在使用"十进制垫"来进入IP地址,并且在所有国家/地区都点缀了。

我像这样哭了:

创建按钮并添加到" .inputaccessoryview"

@objc func dotButtonAction() {
    guard let newTextField = self.text else { return }
        self.text = newTextField + "."
}

所有答案都没有帮助我。

直到找到更好的解决方案,这也将起作用:

number = number.replacingOccurrences(of: ",", with: "."

数字将用dot更改逗号,例如:

12,34 将成为 12.34

最新更新