我想在文本字段中输入货币。但我想在输入每个数字后移动小数点。例如
默认值为$ 0.00当我输入2然后它应该显示$ 0.02后我输入4然后它显示$ 0.24我输入9然后它应该显示$ 2.49我输入9然后它应显示$ 24.99
目前我正在尝试更新编辑已更改上的文本字段,如下所示
@IBAction func currencyTapped(sender: UITextField) {
let formatter = NSNumberFormatter()
formatter.minimumIntegerDigits = 1
formatter.minimumFractionDigits = 2
formatter.maximumFractionDigits = 2
formatter.usesGroupingSeparator = true
if let str = sender.text {
if let num = Double(str) {
sender.text = formatter.stringFromNumber(num)
}
}
}
如何根据需要更改代码以输入值?
答案 0 :(得分:1)
你可以做一些事情,比如拥有实际小数位的索引,当用户键入数字时递增此索引,并在删除某些内容时递减它。然后每次根据输入输入或删除某些内容,每次输入更改时,重新加载它以设置格式化的字符串。
override func viewDidLoad()
{
super.viewDidLoad()
self.index = 0
self.oldValue = ""
self.newValue = ""
self.textField.addTarget(self, action: textFieldDidChange, forControlEvents: UIControlEvents.ValueChanged)
}
func textFieldDidChange(textField: UITextField)
{
self.newValue = textField.text
if self.newValue.characters.count > self.oldValue.characters.count
{
self.index++
}
else
{
self.index--
}
textField.text = //Formated string according to index
self.oldValue = self.newValue
}