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