UITextFieldDelegate является предпочтительным способом выяснить это.
- (void)textFieldDidBeginEditing:(UITextField *)textField
- это только скажет вам, что оно стало первым полем респондента / ключа, это не гарантируетчто пользователь изменил значение
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
- этот метод будет сообщать вам, когда пользователь нажимает клавишу для изменения текста, «вставка» приведет к тому, что в строке будет несколько символов, на одну позицию больше пробелаили удаление выбора приведет к тому, что строка станет пустой,…
- (void)textFieldDidEndEditing:(UITextField *)textField
- это обычное место для сравнения значения в поле со значением в модели, чтобы увидеть, произошло ли редактирование,это будет вызвано, только когда поле освободит статус «ключа», обратите внимание, что пользователь может нажать кнопку, чтобы заставить весь вид исчезнуть до того, как он будет вызван, что часто делает его полезным для отслеживания, становится ли любое интересующее вас поле«ключевое поле» (см. первый метод)
может быть полезно установить точки останова в соответствующих реализациях, чтобы ознакомиться с их порядком вызовов / логикой