Swift:在十进制文本字段输入中显示$和逗号
我有一些带有十进制键盘的文本字段,我想让它们在屏幕上显示$和逗号($1222000.00)。还可以更改文本的间距,因为添加逗号时,文本会很拥挤Swift:在十进制文本字段输入中显示$和逗号,swift,textfield,Swift,Textfield,我有一些带有十进制键盘的文本字段,我想让它们在屏幕上显示$和逗号($1222000.00)。还可以更改文本的间距,因为添加逗号时,文本会很拥挤 for textField in self.numberTextField! as [UITextField] { textField.keyboardType = .DecimalPad textField.inputAccessoryView = keyboardToolbar numberTextField是我的文
for textField in self.numberTextField! as [UITextField] {
textField.keyboardType = .DecimalPad
textField.inputAccessoryView = keyboardToolbar
numberTextField是我的文本字段集合。感谢您的帮助!非常感谢 每次字段更改时,您都在创建一个新的NSNumberFormatter对象。我应该在哪里添加这些代码?在问题中提到的循环中,或在viewcontroller类中?在您的viewcontroller中。拆下该循环。只需添加UITextFieldDelegate并确认即可。然后使用上面的代码。我使用@IBOutlet var numberTextField:Array?,在formatCurrency函数中,self.numberTextField.text有一个错误,称为Array?没有成员“文本”。我添加了“类CashflowViewController:UIViewController,UITextFieldDelegate”,是否正确?每次字段更改时,您都在创建一个新的NSNumberFormatter对象。我应该在哪里添加这些代码?在问题中提到的循环中,或在viewcontroller类中?在您的viewcontroller中。拆下该循环。只需添加UITextFieldDelegate并确认即可。然后使用上面的代码。我使用@IBOutlet var numberTextField:Array?,在formatCurrency函数中,self.numberTextField.text有一个错误,称为Array?没有成员“text”。我添加了“类CashflowViewController:UIViewController,UIExtFieldDelegate”,是否正确?
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
let oldText = textField.text! as NSString
var newText = oldText.stringByReplacingCharactersInRange(range, withString: string) as NSString!
var newTextString = String(newText)
let digits = NSCharacterSet.decimalDigitCharacterSet()
var digitText = ""
for c in newTextString.unicodeScalars {
if digits.longCharacterIsMember(c.value) {
digitText.append(c)
}
}
let formatter = NSNumberFormatter()
formatter.numberStyle = NSNumberFormatterStyle.CurrencyStyle
formatter.locale = NSLocale(localeIdentifier: "en_US")
let numberFromField = (NSString(string: digitText).doubleValue)/100
newText = formatter.stringFromNumber(numberFromField)
textField.text = String(newText)
return false
}