Я хотел бы отформатировать свою цифровую запись и добавить один "."после максимум трех цифр (0 <= 999,99) ... и иметь возможность добавить "."всякий раз, когда я хочу ... </p>
Таким образом, я изменил тип клавиатуры текстового поля, чтобы быть десятичным (который уже включает в себя точку) ...
Мне нужна проверкадля числового диапазона, который составляет 0,000 <= 999,999 </p>
Мне нужна еще одна проверка, которая позволит мне вводить 3 десятичных числа после "."
т.е.
123.456
4.546
or 85.60
Все, что я нашел, это примеры других страниц, использующих запятые и валюты, но каждые 3 цифры добавляется символ ...
Это мой лучший подход к проблеме:
func textField(_ textField: UITextField, shouldChangeCharactersIn
range: NSRange, replacementString string: String) -> Bool {
guard let text = textField.text, let decimalSeparator =
NSLocale.current.decimalSeparator else {
return true
}
var splitText = text.components(separatedBy: decimalSeparator)
let totalDecimalSeparators = splitText.count - 1
let isEditingEnd = (text.count - 3) < range.lowerBound
splitText.removeFirst()
if
splitText.last?.count ?? 0 > 1 && string.count != 0 &&
isEditingEnd
{
return false
}
// If there is already a dot I don't want to allow further dots
if totalDecimalSeparators > 0 && string == decimalSeparator {
return false
}
// Only allow numbers and decimal separator
switch(string) {
case "", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", decimalSeparator:
return true
default:
return false
}
}
, что он делает, это набирать цифры (максимум 10 цифр) и после того, как я нажимаю "."затем точка принимает только 2 десятичных знака
т.е.
12.30
1540.67
128438.78
Любая помощь принимается!Заранее спасибо!