numberPad(小数点なし)からテキストフィールドに入力するときに$とカンマを表示するようにします。以前は助けを得てコードを使用していました。しかし、クライアントは10進数を入力しません(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
}
入力するとき、それは常にどのようにコードを編集を経て、「0.00" を削除し、それがユニットから始めましょうし、小数点以下第三ユニットから始まりますか?私は長い間、事前に感謝しました。
ユーザタイプ「1234」は、テキストフィールドに、それは「$ 1」と表示されますときに私がしたいです - > "$ 12" - > "$ 123" - > "$ 1,234" – user6702783
ああ、このq/aをチェックしてください:http://stackoverflow.com/questions/11787759/how-to-properly-format-currency-on-ios上記の '$ \(digits).00"を答えから 'numberAsString'に置き換えてください。 –
こんにちは、私はあなたのソリューションを試して、問題は私が編集しているとき、カンマはすぐに追加されません。私は編集を終えたときにのみ表示されます。しかし、それは私が欲しいものではありません。 – user6702783