如何在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)
我目前正在开发一个应用程序,用户需要以 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)