Я делаю приложение Swift iOS. Здесь у меня есть экран регистрации. В этом у меня есть 3 текстовых поля. Мое требование - пользователь не должен допускать двойное пространство, и если текстовое поле пусто, пользователю также следует ограничить одно пространство. Если в текстовом поле есть хотя бы один символ, пользователь может указать один пробел.
Но после того, как все 3 текстовых поля заполнены, мне нужно только включить кнопку Готово , но даже одно текстовое поле пусто, мне нужно отключить эту кнопку «Готово».
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let rawString = string
let range = rawString.rangeOfCharacter(from: .whitespaces)
if ((textField.text?.count)! == 0 && range != nil)
|| ((textField.text?.count)! > 0 && textField.text?.last == " " && range != nil) {
return false
}
self.doneButtonEnable()
return true
}
func doneButtonEnable() {
if ((firstNameTextField.text!.count > 0) && (lastNameTextField.text!.count > 0) && (displayNameTextField.text!.count > 0)) {
doneButtonAppearance(appearance: true)
doneButton.setBackgroundImage(UIImage(named:"image_enable"), for: .normal)
} else {
doneButtonAppearance(appearance: false)
doneButton.setBackgroundImage(UIImage(named:"image_disabled"), for: .normal)
}
}
Проблема в том, что если я ввожу один символ во все 3 текстовых поля, каждое текстовое поле с 1 символом, кнопка по-прежнему отображается отключенной, и если я ввожу 2 символа в последнем текстовом поле включается только кнопка «Готово».
Также, если я удалю весь текст в третьем текстовом поле, кнопка «Готово» должна отключаться, но в консоли отображается последний символ последнего введенного текста.
Это проблема, с которой я столкнулся.
Есть решения?