Ios 如何检测iPad是否插入外部键盘?

Ios 如何检测iPad是否插入外部键盘?,ios,objective-c,ipad,uikeyboard,Ios,Objective C,Ipad,Uikeyboard,我想以编程方式检测在给定视图上是否可以看到连接的外部键盘或虚拟键盘。我怎么做 我可以用键盘通知,但我需要一种不同的方式来做。还有别的办法吗 也许这有帮助 首次登记通知: [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; [[NSNotificationCenter d

我想以编程方式检测在给定视图上是否可以看到连接的外部键盘或虚拟键盘。我怎么做

我可以用键盘通知,但我需要一种不同的方式来做。还有别的办法吗

也许这有帮助

首次登记通知:

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
然后接收:

-(void)keyboardWillHide:(NSNotification *)_notification {
NSLog(@"%@",[_notification infoDict]);
}
-(void)keyboardWillShow:(NSNotification *)_notification {
NSLog(@"%@",[_notification infoDict]);
}

仅当显示内部键盘且未连接外部键盘时,才会调用此命令!如果连接了外部键盘,则不会调用显示通知

资料来源:

另一种方法可以是:

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

您可以收听GSEventHardwareKeyboard附加的KgSeventhWareKeyboardAvailabilityChangedNotification Darwin通知,但这是一个私有API,因此如果您使用它,您的应用程序可能会被拒绝。要检查是否存在外部硬件,请使用专用GSEventIsHardwareKeyboardAttached函数

UIKit侦听此消息并相应地设置UIKeyboardImpl.isInHardwareKeyboardMode属性,但这也是私有API


来源:

问题在于我使用uiwebviw和可编辑的div。所以UIKeyboardWillShowNotification也使用外部键盘调用?