【问题标题】:How can i force Swift Decimal Pad with dot instead of comma regardless of locale?无论语言环境如何,我如何强制使用点而不是逗号的 Swift Decimal Pad?
【发布时间】:2017-11-21 18:05:31
【问题描述】:

在 Swift 中,当我们选择键盘样式作为小数点时,它会显示为 10 个数字和分隔符,具体取决于您所在的国家/地区。例如,在俄罗斯,默认的小数点分隔符是“,”,而在美国则是“.”。

在我的应用程序中,我只想显示带有点 '.' 的小数点。不管你在哪里。

我不想this发生
我希望this 在每台设备上都发生!

这与显示正确的键盘语言无关。
它是关于强制小数分隔符为“。”(点)无论应用程序用户拥有什么位置。
例如,我们可以从 Product>Scheme>Edit Scheme>Options>Application Region -> set to US 强制本地化。但我只需要更改十进制符号,而不是整个本地化。

【问题讨论】:

  • @TamásSengel 对问题的编辑清楚地表明它不再可能重复。

标签: ios iphone


【解决方案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 地址,并且在所有国家/地区都是点分十进制。

【讨论】:

    猜你喜欢
    • 2015-11-22
    • 2017-11-17
    • 2010-11-25
    • 2018-02-09
    • 2019-11-21
    • 2016-06-18
    • 1970-01-01
    • 1970-01-01
    • 2020-01-24
    相关资源
    最近更新 更多