Я перемещаю свой вид при нажатии текстового поля, чтобы получить правильный вид при появлении клавиатуры.Теперь, когда нажата кнопка «Готово», я бы хотел вернуть вид в исходное состояние.Как мне обработать действие, когда нажата кнопка готовой клавиатуры?
Правильный способ сделать это - соблюдать уведомления UIKeyboardDidShowNotification и UIKeyboardDidHideNotification, как описано в Документация Apple .
UIKeyboardDidShowNotification
UIKeyboardDidHideNotification
Если вы хотите знать, когда DoneНажата кнопка, введите
Done
- (BOOL)textFieldShouldReturn:(UITextField *)textField
В вашем делегате.Он должен вызываться при нажатии кнопки возврата.Подробнее см. Документация по API .
Создайте IBAction и подключите его к методу didEndOnExit текстового поля. Затем в рамках реализации этого метода вы должны указать [yourTextFieldOutlet resignFirstResponder];, что приведет к деактивации текстового поля.
IBAction
didEndOnExit
[yourTextFieldOutlet resignFirstResponder];
@ freespace все правильно, это все, что вам нужно сделать.
- (BOOL)textFieldShouldReturn:(UITextField *)textField { return [textField resignFirstResponder]; }
Нажмите кнопку «Готово» и пуф, клавиатура исчезла.
Если вы просто хотите узнать, что нажата кнопка «Готово», вы можете попросить сообщить об этом событии управления:
[textField addTarget:self action:@selector(donePressed) forControlEvents:UIControlEventEditingDidEndOnExit];
Это кодовая версия IB didEndOnExit.