Остановка вызова textFieldDidEndEditing при выходе из viewController - PullRequest
0 голосов
/ 26 января 2019

У меня есть ViewController с TextField для пользовательского ввода и кнопка Quit на панели навигации.

Обычно пользователь вводит текст в textField, а ввод обрабатывается в textFieldDidEndEditing.Если кнопка «Выход» была нажата до начала редактирования, то она корректно переключается на родительский ViewController.

Однако, если редактирование началось в textField, а затем нажата кнопка «Выход», по-прежнему вызывается textFieldDidEndEditing, чтоЯ не хочу, чтобы это произошло.

Я пытался использовать textFieldDidEndEditing:reason:, но возвращаемая причина в обоих случаях UITextFieldDidEndEditingReasonCommitted.Похоже, что UITextFieldDidEndEditingReasonCancelled действует только в tvOS, а не в iOS.

Как еще я могу определить, что у пользователя есть Quit, и запретить запуск textFieldDidEndEditing до завершения?

1 Ответ

0 голосов
/ 26 января 2019

Вы не можете запретить вызов textFieldDidEndEditing. Отклонение контроллера представления отклоняет текстовое поле. Поскольку текстовое поле больше не редактируется, будет вызван метод делегата.

Один из вариантов - установить флаг, когда пользователь нажимает кнопку «Выйти». Затем в вашей реализации textFieldDidEndEditing вы можете проверить, установлен этот флаг или нет, и действовать соответственно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...