ios - 如何检测 iPad 上是否存在外接键盘?

标签 ios ipad keyboard

有没有办法检测 iPad 是否连接了外接(蓝牙或 USB)键盘?

最佳答案

一种间接且 SDK 安全的方法是将文本字段设置为第一响应者。如果存在外部键盘,则不应发布 UIKeyboardWillShowNotification 本地通知。

Update: This is no longer true since iOS 9, however you may use the keyboard dimensions to determine if a hardware or software keyboard is involved. See How to reliably detect if an external keyboard is connected on iOS 9? for details.

您可以收听 "GSEventHardwareKeyboardAttached" (kGSEventHardwareKeyboardAvailabilityChangedNotification) Darwin 通知,但这是一个私有(private) API,因此如果您使用此 API,您的应用可能会被拒绝.要检查外部硬件是否存在,请使用私有(private) GSEventIsHardwareKeyboardAttached() 函数。

UIKit 监听此并相应地设置 UIKeyboardImpl.isInHardwareKeyboardMode 属性,但这同样是私有(private) API。

关于ios - 如何检测 iPad 上是否存在外接键盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2893267/

相关文章:

iphone - 只显示一次设置窗口

ios - 在自动布局中设置约束

ios - 快速地,我如何检测 UILabel 上的按下开始和结束的时间?

ios - 在没有应用程序源代码的情况下使用 Instruments 测试 iOS 应用程序

iphone - 如何以人类可读的形式获取 iOS 根证书列表

c# - MonoGame 按键字符串

java - KeyListener 不响应键盘输入

ios - 如何在调试我的应用程序时跳过内存读取?

Android JUNIT 获取键盘 View

iPhone和iPad,播放视频时截图