无论语言环境如何,我如何强制使用点而不是逗号的 Swift Decimal Pad?
Posted
技术标签:
【中文标题】无论语言环境如何,我如何强制使用点而不是逗号的 Swift Decimal Pad?【英文标题】:How can i force Swift Decimal Pad with dot instead of comma regardless of locale? 【发布时间】:2017-11-21 18:05:31 【问题描述】:在 Swift 中,当我们选择键盘样式作为小数点时,它会显示为 10 个数字和分隔符,具体取决于您所在的国家/地区。例如,在俄罗斯,默认的小数点分隔符是“,”,而在美国则是“.”。
在我的应用程序中,我只想显示带有点 '.' 的小数点。不管你在哪里。
我不想this发生 我希望this 在每台设备上都发生!
这与显示正确的键盘语言无关。 它是关于强制小数分隔符为“。”(点)无论应用程序用户拥有什么位置。 例如,我们可以从 Product>Scheme>Edit Scheme>Options>Application Region -> set to US 强制本地化。但我只需要更改十进制符号,而不是整个本地化。
【问题讨论】:
@TamásSengel 对问题的编辑清楚地表明它不再可能重复。 【参考方案1】:子类化您的 textField 并覆盖 UIResponder.textInputMode 并为 UITextInputMode.primaryLanguage 返回俄语
【讨论】:
如何子类化我的 textField?它提供了@IBOutlet weak var rateTextField: FloatingTextField!
【参考方案2】:
我知道这不再是 2017 年了,但是... 覆盖 UITextField 非常简单。
class EnglishTextField: UITextField
override var textInputMode: UITextInputMode? return EnglishInputMode()
class EnglishInputMode : UITextInputMode
override var primaryLanguage: String? "en-US"
然后在 Storyboard 中该 UITextField 的 Identity Inspector 中,将 Class(顶部)设置为 EnglishTextField。
这很好用,除了一个问题:在 2019 年,在显示键盘之前永远不会查询“primaryLanguage”,所以它根本没有帮助。
我仍然希望自己找到答案。就我而言,我使用“小数点”来允许输入 IP 地址,并且在所有国家/地区都是点分十进制。
【讨论】:
以上是关于无论语言环境如何,我如何强制使用点而不是逗号的 Swift Decimal Pad?的主要内容,如果未能解决你的问题,请参考以下文章