Ручная клавиатура Готово нажатие на 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.