【发布时间】:2018-07-18 16:36:51
【问题描述】:
如何将价格文本字段文本格式化为像 234,345,567 这样的货币格式,并且我需要将小数点限制为不超过 2,并在用户开始输入时附加 $ 符号。
例如:$234,345,678.25
像这样,当他们在文本字段中输入金额时,我想在 3 个数字之间添加逗号
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if ((string == "0" || string == "") && (txtFldPostalCode.text! as NSString).range(of: ".").location < range.location) {
return true
}
let cs = NSCharacterSet(charactersIn: "0123456789.").inverted
let filtered = string.components(separatedBy: cs)
let component = filtered.joined(separator: "")
let isNumeric = string == component
if isNumeric {
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.maximumFractionDigits = 8
let newString = (textField.text! as NSString).replacingCharacters(in: range, with: string)
let numberWithOutCommas = newString.replacingOccurrences(of: ",", with: "")
let number = formatter.number(from: numberWithOutCommas)
if number != nil {
var formattedString = formatter.string(from: number!)
if string == "." && range.location == textField.text?.length {
formattedString = formattedString?.appending(".")
}
textField.text = formattedString
} else {
textField.text = nil
}
}
return false
}
【问题讨论】:
-
显示你尝试过的代码
-
@Anbu.karthik 代码太长
-
只显示测试域委托代码
-
@Anbu.karthik 我已经编辑了兄弟
标签: ios swift3 uitextfield