Swift 带十进制键盘的UITextfield中的自动逗号
我使用的UITextField具有十进制键盘。因此,用户只能键入数字。我想文本字段自动添加逗号,每千个用户类型。这样用户就可以很容易地识别他们输入了多少内容。有没有一个共同的方法来做到这一点 答案应该有帮助。他们在shouldChangeCharactersRange方法中添加了逗号。 这是swift的等价物Swift 带十进制键盘的UITextfield中的自动逗号,swift,swift2,uitextfield,Swift,Swift2,Uitextfield,我使用的UITextField具有十进制键盘。因此,用户只能键入数字。我想文本字段自动添加逗号,每千个用户类型。这样用户就可以很容易地识别他们输入了多少内容。有没有一个共同的方法来做到这一点 答案应该有帮助。他们在shouldChangeCharactersRange方法中添加了逗号。 这是swift的等价物 let formatter = NSNumberFormatter() formatter.numberStyle = NSNumberFormatterStyle.DecimalStyl
let formatter = NSNumberFormatter()
formatter.numberStyle = NSNumberFormatterStyle.DecimalStyle
let formattedNum = formatter.stringFromNumber(10000000)
textField.text = formattedNum
这是参考资料。下面是转换后的swift代码。将委托设置为textField并实现下面的委托方法
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
let cs = NSCharacterSet(charactersInString: "0123456789").invertedSet
let filtered = string.componentsSeparatedByCharactersInSet(cs)
let component = filtered.joinWithSeparator("")
let isNumeric = string == component
// check for input string is numeric value or either a number not a string or character.
if isNumeric {
let formatter = NSNumberFormatter()
formatter.numberStyle = .DecimalStyle
formatter.maximumFractionDigits = 10
let newString = (textField.text! as NSString).stringByReplacingCharactersInRange(range, withString: string)
let numberWithOutCommas = newString.stringByReplacingOccurrencesOfString(",", withString: "")
let number = formatter.numberFromString(numberWithOutCommas)
if number != nil {
let formattedString = formatter.stringFromNumber(number!)
print(number)
print(formattedString)
textField.text = formattedString
} else {
textField.text = nil
}
}
return false
}
我对iOS相当陌生。我不完全理解。为什么会有1000万人?我还试着输入第二行代码,但Xcode并没有接收到它。