Сначала вам нужна ссылка для кнопки (установите состояние кнопки по умолчанию как отключено )
@IBOutlet weak var someButton: UIButton!
Использование цели для .editingChanged
Первое действие создания, которое получаетвызывается, когда пользователь вводит или удаляет символ из TextField.Если в TextField text
есть хотя бы 7 символов, включите кнопку, если нет, отключите ее
@IBAction func textFieldChangedValue(_ sender: UITextField) {
someButton.isEnabled = sender.text!.count >= 7
}
, а затем просто добавьте цель в свой TextField для события .editingChanged
(вам не нужно делать это программно)
textField.addTarget(self, action: #selector(textFieldChangedValue(_:)), for: .editingChanged)
Использование метода делегата shouldChangeCharactersIn
Использование shouldChangeCharactersIn
Метод делегата TextField, который вызывается при вводе или удалении пользователем любого символа
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if textField == passwordField {
let countAfter = textField.text!.count + string.count - range.length
someButton.isEnabled = countAfter >= 7
}
return true
}