thisに変更されたメソッドを使用しています。ユーザーが数字を入力するときにUITextField
と書式を設定します。私はライブフォーマットされている番号でしたい。私は1000から1000、50000から50,000などを変更しようとしています。UITextFieldでユーザータイプとして数値をカンマで区切る
私の問題は、私のUITextField
値が期待通りに更新されないということです。たとえば、UITextField
に50000を入力すると、結果は50,000ではなく5,0000に戻ります。ここに私のコードは次のとおりです。shouldChangeCharactersIn
の
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
//check if any numbers in the textField exist before editing
guard let textFieldHasText = (textField.text), !textFieldHasText.isEmpty else {
//early escape if nil
return true
}
let formatter = NumberFormatter()
formatter.numberStyle = NumberFormatter.Style.decimal
//remove any existing commas
let textRemovedCommma = textFieldHasText.replacingOccurrences(of: ",", with: "")
//update the textField with commas
let formattedNum = formatter.string(from: NSNumber(value: Int(textRemovedCommma)!))
textField.text = formattedNum
return true
}
http://stackoverflow.com/questions/24115141/swift-converting-string-to-int/34294660?s=1|0.1034#34294660 –