iOS Swift在UITextfield中从右到左的十进制输入



这里没有提到任何解决方案:

如何使用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
}
}

最新更新