Как я могу определить наличие внешней клавиатуры на iPad? - PullRequest
51 голосов
/ 24 мая 2010

Есть ли способ определить, подключена ли к iPad внешняя клавиатура (Bluetooth или USB)?

Ответы [ 11 ]

0 голосов
/ 26 апреля 2013

Следующий код дает вам рамку клавиатуры для всех ориентаций, независимо от того, используете ли вы полноэкранный вид или подробный вид разделенного вида.

NSDictionary* info = [aNotification userInfo];
CGRect frame = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
CGRect keyboardEndFrame = [self.view convertRect:frame fromView:nil]; //  The raw frame values are physical device coordinate.
CGSize keyboardSize = keyboardEndFrame.size;

Рамка клавиатуры, доставляемая уведомлением, всегда представлена ​​в виде аппаратных координат с началом координат в верхнем правом углу экрана, когда устройство iOS работает в обычном портретном режиме с кнопкой «Домой» внизу. Метод -convertRect: fromView изменяет координаты от координат окна (= аппаратные средства) до локальных координат вида.

Я обнаружил, что с клавиатурой Bluetooth вы получаете одно уведомление UIKeyboardDidShowNotification при первом повороте экрана, но ни одного после этого. Сложнее отличить закрепленную клавиатуру от отсоединенной / разделенной клавиатуры и клавиатуры BT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...