如何在UITextField中实现从左到右的货币/燃油价格格式(0,00)?

How to achieve currency/ fuel price format (0,00) from left to right in UITextField?

我目前正在开发一个应用程序,用户需要以 0,00 格式输入燃油价格,其中第一位数字后显示逗号,并且仅限于输入 3 位数字。 有人有解决办法吗?

UIViewController class 中添加以下 objc 函数:

@objc func format_textfield(_ sender:UITextField){
    var str:String = sender.text!
    if str.count>0 && Array(str)[0] == ","{
        sender.text = String(str.suffix(from: str.index(str.startIndex,offsetBy: 1)))
        str = sender.text!
    }
    if str.count > 4 {
        sender.text = String(str.prefix(4))
    }else if str.count > 1 && Array(str)[1] != ","{
        sender.text = String(str[..<str.index(str.startIndex, offsetBy: 1)])+","+String(str[str.index(str.startIndex, offsetBy: 1)...])
    }
}

然后,像这样将函数添加为 UITextField 的目标(这可以在 viewDidLoad() 方法中完成):

textField.addTarget(self, action: #selector(format_textfield(_:)), for: .editingChanged)