Каков наилучший способ ввода числовых значений с десятичными точками? - PullRequest
51 голосов
/ 09 ноября 2008

В моем приложении пользователи должны иметь возможность вводить числовые значения с десятичными знаками. В iPhone нет клавиатуры, специально предназначенной для этой цели, - только цифровая клавиатура и клавиатура с цифрами и символами.

Существует ли простой способ использовать последнее и предотвратить ввод любых нечисловых значений без необходимости повторного выражения конечного результата?

Спасибо!

Ответы [ 11 ]

0 голосов
/ 25 сентября 2015

Реализация сообщения Майка Уэллера в Swift 2, также только USD:

 func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
    guard let str = textField.text else {
        textField.text = "0.00"
        return false
    }

    let value = (str as NSString).doubleValue

    var cents = round(value * 100)
    if string.characters.count > 0 {
        for c in string.characters {
            if let num = Int(String(c)) {
                cents *= 10
                cents += Double(num)
            }
        }
    }
    else {
        cents = floor(cents / 10)
    }

    textField.text = NSString(format: "%.2f", cents/100) as String

    return false
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...