Как определить, что пользователь iPad нажал на клавиатуру?

В моем приложении у меня есть сложная логика, окружающая скрытие и отображение клавиатуры. Я заинтересован в обнаружении, когда пользователь (у которого есть iPad) специально нажимает на кнопку скрыть клавиатуру iPad:

alt text

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

Спасибо!

Ответы

Ответ 1

Я искал то же самое решение, и я нашел его в документации в конце концов. Вы получаете полный набор уведомлений о клавиатуре:

- UIKeyboardWillShowNotification
- UIKeyboardDidShowNotification
- UIKeyboardWillHideNotification
- UIKeyboardDidHideNotification
- UIKeyboardWillChangeFrameNotification
- UIKeyboardDidChangeFrameNotification

Меня интересовала "UIKeyboardWillHideNotification". Так просто реализовано:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(KeyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];

Et voilà! Надеюсь, что это поможет, даже если это на год позже.

Ответ 2

Я не думаю, что Apple это допускает, я боюсь.

Но, возможно, вы могли бы создать невидимое представление (view.opaque = FALSE; view.alpha = 0;), которое было бы расположено над вышеупомянутой кнопкой, которая получает штрихи в качестве первого ответчика (так что вы получите событие), а затем переходите к следующему (клавиатуре). Однако я не знаю, возможно ли разместить над клавиатурой представление даже "незаконно".