Swift:输入时在文本字段中添加逗号和$

时间:2016-09-12 01:05:45

标签: swift uitextfield

我希望用户在从numberPad(没有小数点)的文本字段中输入时看到$和逗号。以前我得到了帮助并使用下面的代码。但客户端不会输入小数(仅限Int值)。

import { AppComponent } from './app.component';

键入时,它始终从第二个十进制单位开始,如何删除" .00"通过编辑代码并让它从单元开始?我试了很长时间,先谢谢了。

1 个答案:

答案 0 :(得分:1)

首先,你得到了一些不好的建议。您不应该使用shouldChangeCharactersInRange来更改文本字段中的字符。用于检查键入的字符是否对该字段有效。如果用户输入数字或删除,则此方法中唯一应该返回的是true,否则返回false。 (请记住,用户可能正在使用外部键盘,因此只需将键盘设置为不足以阻止非数字输入。)

相反,您应该使用与@IBAction字段相关联的EditingChanged。在此方法中,您应该更新文本。

@IBAction func editingChanged(sender: UITextField) {
    let digits = sender.text?.digitsOnly ?? "0"
    sender.text = "$\(digits).00" // If I understand what you want.
}

以下扩展名应位于代码库中的某处。它通常很有用,所以将它存放在一个要点或其他东西中,你可能在将来的项目中需要它。

extension String {
    var digitsOnly: String {
        return componentsSeparatedByCharactersInSet(NSCharacterSet.decimalDigitCharacterSet().invertedSet).joinWithSeparator("")
    }
}

您必须确保IBAction附加到EditingChanged事件:

enter image description here

相关问题