繁体   English   中英

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

[英]iOS Swift decimal input in UITextfield from right to left

这里没有提到的解决方案:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM