在Swift中,当我们选择键盘样式为Decimal Pad时,它会显示10个数字和分隔符,具体取决于您所在的国家/地区。例如,在俄罗斯,默认的小数点分隔符是','而在美国则是'。'。
在我的应用中,我只想显示带有'''的十进制垫。无论你身在何处都无所谓。
这不是关于显示正确的键盘语言。
它是关于强制小数点分隔符符为'。'(点)app用户拥有的任何位置。
例如,我们可以从Product> Scheme> Edit Scheme> Options> Application Region - >强制localizaton。设置为美国。但我只需要改变十进制符号,而不是整个本地化。
答案 0 :(得分:1)
我知道现在不再是2017年,但是... 覆盖UITextField非常简单。
class EnglishTextField: UITextField {
override var textInputMode: UITextInputMode? { return EnglishInputMode() }
}
class EnglishInputMode : UITextInputMode {
override var primaryLanguage: String? { "en-US" }
}
然后在“情节提要”中的UITextField的身份检查器中,将“类”(在顶部)设置为EnglishTextField。
除了一个问题外,此方法效果很好:在2019年,在显示键盘之前从未查询过“ primaryLanguage”,因此它根本无济于事。
我仍然希望自己找到答案。就我而言,我使用的是“十进制填充”以允许输入IP地址,而在所有国家/地区中,这些地址都是点分十进制的。
答案 1 :(得分:0)
对textField进行子类化并覆盖UIResponder.textInputMode并返回俄语UITextInputMode.primaryLanguage