这里没有提到任何解决方案:
如何使用Swift在文本字段(从右到左(上输入货币格式?
为我工作。请不要把这个标记为重复。
我不能用UITextField的子类来给出我自己的实现。(此UITextField也在其他地方使用(。
我看到的唯一方法是用这种方法格式化replacementText字符串(用户输入字符串(:
override func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let currentText = textField.text ?? ""
var replacementText = (currentText as NSString).replacingCharacters(in: range, with: string)
}
因此,当用户输入一个数字时,它应该显示如下:0.00。
当用户点击1。我们应该有0.01当用户点击2。我们应该显示0.12当用户点击3。我们应该显示1.23当用户点击4。我们应该显示12.34
private var enteredText: String = ""
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if enteredText.count > 0 && string == "" && range.length == 1 {
//Handles backspace
enteredText.removeLast()
}
else {
enteredText += string
}
return true
}
func textFieldDidChangeCharacter(textField:UITextField) {
if let number = NumberFormatter().number(from: enteredText) {
let double = number.doubleValue/100.0
let string = String(format: "%0.2f", double)
textField.text = string
}
}