Существует ли способ обнаружить, если внешнее (Bluetooth или usb) клавиатура подключено к iPad?
Косвенный и безопасный для SDK способ - сделать текстовое поле первым респондентом. Если присутствует внешняя клавиатура, локальное уведомление UIKeyboardWillShowNotification
не должно публиковаться.
Обновление: Это больше не так, начиная с iOS 9, однако вы можете использовать размеры клавиатуры, чтобы определить, задействована ли аппаратная или программная клавиатура. Подробнее см. Как надежно определить, подключена ли внешняя клавиатура в iOS 9? .
Вы можете прослушать уведомление Дарвина "GSEventHardwareKeyboardAttached"
( kGSEventHardwareKeyboardAvailabilityChangedNotification
), но это частный API, поэтому ваше приложение может быть отклонено, если вы воспользуетесь им. Чтобы проверить наличие внешнего оборудования, используйте частную функцию GSEventIsHardwareKeyboardAttached ()
.
UIKit слушает это и соответственно устанавливает свойство UIKeyboardImpl.isInHardwareKeyboardMode
, но опять же, это частный API.