Кнопка «Отклонить клавиатуру» на iPad (внизу справа), как мне определить, когда это происходит? Какая функция говорит мне, что она была нажата? - PullRequest
21 голосов
/ 25 июня 2010

У меня есть приложение для ipad, которое, когда вы находитесь в альбомной ориентации, при переносе клавиатуры вид будет двигаться вверх. Когда вы нажимаете «Готово» на клавиатуре, вызываются textFieldShouldReturn и textFieldShouldEndEditing, и в этом случае я перемещаю вид внизв shouldEndEditing.

Если пользователь нажимает кнопку отклонения клавиатуры, клавиатура делает пуф, но вид все еще застрял в том месте, где я его переместил.

Мне нужно знать, как или какая функциявызывается при нажатии этой кнопки, чтобы я мог перенаправить функцию в textFieldShouldEndEditing.

Спасибо!

Ответы [ 3 ]

27 голосов
/ 26 июня 2010

Вы можете прослушивать скрытие клавиатуры UIKeyboardWillHideNotification уведомление.

Пример кода здесь http://developer.apple.com/iphone/library/samplecode/KeyboardAccessory/Listings/Classes_ViewController_m.html

13 голосов
/ 24 февраля 2012

Когда нажата кнопка «нижняя клавиатура», метод делегата текстового поля:

-(BOOL)textFieldShouldReturn:(UITextField *)textField

Не будет вызван.

Когда «нижняя клавиатура» или «возврат»кнопка ", будет вызвано:

-(void)textFieldDidEndEditing:(UITextField *)textField

.

Я использую переменную NSString *lowerKeyboardButtonPressed, изначально установленную на @"", которую я установил на @"N" в textfieldShouldReturn method ... затем в методе textFieldDidEndEditing я проверяю, установлено ли оно на @"N" ... тогда я знаю, была ли нажата клавиша возврата или нижняя клавиша клавиатуры.Последняя строка в моем методе textFieldDidEndEditing устанавливает переменную обратно @"".

2 голосов
/ 20 мая 2011

Если вы нажмете кнопку отклонения клавиатуры, и у вас будет подключена аппаратная клавиатура, то willHide будет вызываться только в том случае, если у вас нет дополнительного устройства ввода. В этот момент вам также необходимо настроить willShow (что будет иметь отрицательную разницу между клавишами UIKeyboardFrameBeginUserInfoKey и UIKeyboardFrameEndUserInfoKey).

...