2016-08-18 6 views
0

小数点以下のテキストフィールドをいくつか持っているので、$とカンマ($ 1,222,000.00)を画面に表示させたい。カンマを追加すると混雑するので、テキストの間隔も変更してください。

for textField in self.numberTextField! as [UITextField] { 
     textField.keyboardType = .DecimalPad 
     textField.inputAccessoryView = keyboardToolbar 

numberTextFieldは、テキストフィールドのコレクションです。どんな助けにも感謝!どうもありがとう!

+1

http://stackoverflow.com/questions/29782982/how-to-input-currency-format-on-a-text-field-from-right-to-left-using-swift/29783546? s = 1 | 0.1094#29783546 –

答えて

2
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 

} 
+0

フィールドが変更されるたびに新しいNSNumberFormatterオブジェクトを作成しています –

+0

答えを編集しました。それを指摘してくれてありがとう。 – Nitesh

+0

こんにちは、これらのコードはどこに追加しますか?質問やビューコントロールクラスで言及されたループでは? – user6702783

関連する問題