How do you dynamically format a number to have commas in a UITextField entry?

前端 未结 9 2072
傲寒
傲寒 2020-12-08 17:42

I want to have commas dynamically added to my numeric UITextField entry while the user is typing.

For example: 123,456 and 12,345,678

9条回答
  •  感动是毒
    2020-12-08 18:17

    Here is a solution in swift 4.

     @objc func textFieldValDidChange(_ textField: UITextField) {
        let formatter = NumberFormatter()
        formatter.numberStyle = NumberFormatter.Style.decimal
        if textField.text!.count >= 1 {
           let number = Double(bottomView.balanceTxtField.text!.replacingOccurrences(of: ",", with: ""))
            let result = formatter.string(from: NSNumber(value: number!))
            textField.text = result!
        }
    }
    

    Don't forget to add editingChanged action as below:

    textField.addTarget(self, action:#selector(ViewController.textFieldValDidChange), for: .editingChanged)
    

提交回复
热议问题