У меня есть приложение для расчетов навигации Celectial, я преобразовал в коде textField.text в Double, но иногда приложение вылетает, если пользователь вводит некоторые поля, такие как «1.0», а некоторые - «1», в результате происходит сбой приложения, потому что может не вычитайте Int и Double, чтобы убедиться, что я хочу ограничить пользователя, чтобы вводить только десятичные цифры "1.0". Лучший способ для меня - это написать что-то вроде того, если пользователь вводит, например, «1» автоматически после нажатия кнопки «Готово», добавьте «.0», чтобы получить 1,0?
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let allowedCharacters = "-1234567890."
let allowedCharacterSet = CharacterSet(charactersIn: allowedCharacters)
let typedCharactersSet = CharacterSet(charactersIn: string)
return allowedCharacterSet.isSuperset(of: typedCharactersSet)
}
func TextField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
guard let text = latDegTextField.text else { return true }
let count = text.count + string.count - range.length
return count == 2
}