Как отследить состояние textField?

Как понять, что пользователь начал ввод текста в textField? По типу willSet и didSet для переменной
  • Вопрос задан
  • 1283 просмотра
Решения вопроса 1
maestrro712
@maestrro712
 iOS Developer
UITextField наследуется от UIControl, а значит вы можете подписываться на его controlEvents. Пример:

override func viewDidLoad() {
        super.viewDidLoad()
        textField.addTarget(self, action: #selector(editingBegan(_:)), for: .editingDidBegin)
        textField.addTarget(self, action: #selector(editingChanged(_:)), for: .editingChanged)
        textField.addTarget(self, action: #selector(editingEnded(_:)), for: .editingDidEnd)
    }

    @objc func editingBegan(_ textField: UITextField) {
        //пользователь попал в поле, но еще ничего не ввел
    }

    @objc func editingChanged(_ textField: UITextField) {
        //текст изменился
    }

    @objc func editingEnded(_ textField: UITextField) {
        //ввод окончен, к примеру нажали "return" на клавиатуре
    }
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
tegrato
@tegrato
Проще написать не просто функцию, а сделать @IBAction, для которого через StoryBoard указать, после какого события он должен сработать:
- EditingDidBegin,
- EditingDidEnd,
и др... - какой нужен.
5ed44417dc062950037535.png
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы