Как я могу обнаружить, если внешняя клавиатура присутствует на iPad?

Существует ли способ обнаружить, если внешнее (Bluetooth или usb) клавиатура подключено к iPad?

51
задан GEOCHET 8 November 2012 в 02:30
поделиться

1 ответ

Косвенный и безопасный для SDK способ - сделать текстовое поле первым респондентом. Если присутствует внешняя клавиатура, локальное уведомление UIKeyboardWillShowNotification не должно публиковаться.

Обновление: Это больше не так, начиная с iOS 9, однако вы можете использовать размеры клавиатуры, чтобы определить, задействована ли аппаратная или программная клавиатура. Подробнее см. Как надежно определить, подключена ли внешняя клавиатура в iOS 9? .

Вы можете прослушать уведомление Дарвина "GSEventHardwareKeyboardAttached" ( kGSEventHardwareKeyboardAvailabilityChangedNotification ), но это частный API, поэтому ваше приложение может быть отклонено, если вы воспользуетесь им. Чтобы проверить наличие внешнего оборудования, используйте частную функцию GSEventIsHardwareKeyboardAttached () .

UIKit слушает это и соответственно устанавливает свойство UIKeyboardImpl.isInHardwareKeyboardMode , но опять же, это частный API.

35
ответ дан 7 November 2019 в 10:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: