То, что код, который я использовал, чтобы ограничить максимум 1 десятичного числа во все моих UITexField
:Проблемы ограничение десятичной длиной
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
let computationString = (textField.text! as NSString).stringByReplacingCharactersInRange(range, withString: string)
let arrayOfSubStrings = computationString.componentsSeparatedByString(",")
if (arrayOfSubStrings.count == 1 && computationString.characters.count > 2) {
return false
} else if arrayOfSubStrings.count == 2 {
let stringPostDecimal = arrayOfSubStrings[1]
return stringPostDecimal.characters.count <= 1
}
return true
}
Но Я просто понимаем, что есть два типа Decimal Pad: с точкой и с запятой.
Например, мой симулятор iOS использует точку, а мой iPhone использует запятую. Так как я могу исправить эту проблему, остановив их обоих?
Не могли бы вы сообщить мне некоторые номера образцов, которые вы хотите разрешить в своем текстовом поле? –
Я написал это. Максимальное одно десятичное число, например: 1,1 или 1,1. –
Кстати, самый простой способ проверить правильность строки - использовать регулярное выражение. Обратите внимание, что даже если клавиатура содержит только цифровые клавиши, пользователь все равно может ввести другой текст, например, с помощью copy-paste. Шаблон регулярного выражения должен быть чем-то похожим на '^ \ d ([.,] \ D {1})? $' – Sulthan