В настоящее время я проверяю свой UITextField
, который настроен на отображение числовой клавиатуры в shouldChangeCharactersIn
, чтобы ограничить ввод только одним десятичным разделителем и только двумя десятичными точками, как это (спасибо этот вопрос ):
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let decimalSeparator = String(Locale.current.decimalSeparator ?? ".")
if (textField.text?.contains(decimalSeparator))! {
let limitDecimalPlace = 2
let decimalPlace = textField.text?.components(separatedBy: decimalSeparator).last
if (decimalPlace?.count)! < limitDecimalPlace {
return true
} else {
return false
}
}
}
Это прекрасно работает.Однако теперь можно вставлять любое значение, которое хочет пользователь, и которое я хочу ограничить значением меньше 999. Я использовал, чтобы проверить длину, чтобы разрешить только 3 символа, но теперь я хочу разрешить следующие значения (например):
143
542.25
283.02
19.22
847.25
Но я не хочу разрешать:
2222
3841.11
999.99
Как я могу это сделать?