Я хочу, чтобы пользователи увидели $ и запятую, когда они печатают текстовое поле из 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 Просто замените '' $ \ (цифры) .00 "' выше на 'numberAsString' из ответа. –
Привет, я попробовал ваше решение, проблема в том, когда я редактирую, запятая не добавит сразу. Он может появиться только после завершения редактирования. Но я этого не хочу. – user6702783