您应该使用此扩展,它与
NumberFormatter
:
struct Number {
static let formatterWithDots: NumberFormatter = {
let formatter = NumberFormatter()
formatter.groupingSeparator = "." // only include this if you want to use dots regardless of the locale
formatter.numberStyle = .decimal
return formatter
}()
}
extension Double {
var formattedWithDots: String? {
return Number.formatterWithDots.string(from: self as NSNumber)
}
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
NotificationCenter.default.addObserver(self, selector: #selector(textFieldDidChange), name: .UITextFieldTextDidChange, object: nil)
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
NotificationCenter.default.removeObserver(self)
}
@objc fileprivate func textFieldDidChange() {
if let number = Double(textField.text ?? "") {
textField.text = number.formattedWithDots
}
}