Итак, у меня есть ViewController с тремя UITextFields. Я не хочу, чтобы пользователь мог щелкнуть, если все три UITextFields не равны 0.doneBarButton.enabled with && statement
Это код, который у меня есть. Я не получаю ошибок, но кнопка «Готово» (barButtonItem) остается серой, даже когда я поместил что-то в каждый из трех UITextFields. Что я делаю не так?
func allTextFields(dateTextField: UITextField, numberOfLitersTextField: UITextField, costPerLiterTextField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementsString string: String) -> Bool {
let oldText: NSString = dateTextField.text!
let oldText2: NSString = numberOfLitersTextField.text!
let oldText3: NSString = costPerLiterTextField.text!
let newText: NSString = oldText.stringByReplacingCharactersInRange(range, withString: string)
let newText2: NSString = oldText2.stringByReplacingCharactersInRange(range, withString: string)
let newText3: NSString = oldText3.stringByReplacingCharactersInRange(range, withString: string)
doneBarButton.enabled = (newText.length > 0 && newText2.length > 0 && newText3.length > 0)
return true
}
Когда вы вызываете эту функцию? – ZGski
Поместите точку останова на строку 'doneBarButton.enabled = ...' и посмотрите, что такое значения 'newText',' newText2' и 'newText3'. – rmaddy
@ZGski У меня установлен ViewController как UITextFieldDelegate –