0
我希望用戶在從numberPad(不帶小數點)的文本字段中輸入時看到$和逗號。以前我得到了幫助並使用了下面的代碼。但客戶端不會鍵入小數(僅限Int值)。
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.usesSignificantDigits = false
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
}
打字的時候,它總是從第二個小單元開始,如何通過編輯代碼刪除」 .00" ,讓它從單元開始?我嘗試了很長時間,預先感謝。
我想,當用戶鍵入「1234」,在文本框將顯示「$ 1」 - >「$ 12」 - >「$ 123」 - >「$ 1,234」 – user6702783
Ahh,然後查看此q/a:http://stackoverflow.com/questions/11787759/how-to-properly-format-currency-on-ios只需從答案中用'numberAsString'替換上面的''$ \(digits).00「'。 –
嗨,我試過你的解決方案,問題是當我編輯時,逗號不會立即添加。它只有在我完成編輯時纔會出現。但這不是我想要的。 – user6702783