正在检测iPad应用程序中的蓝牙键盘



在我的应用程序中,我有一个客户信息表单,上面有我使用过的许多文本字段,现在当用户编辑任何字段时,我需要将整个视图向上移动,这样编辑文本字段就不会进入iPad的内部键盘,这很好。现在客户端想要使用外部蓝牙键盘来填写此表单。一旦此外部键盘与iPad连接,则在应用程序中编辑任何文本字段时都不会显示内部键盘,因为外部键盘已连接,在这种情况下,整个视图需要在页面上,无需向上移动。但当我编辑文本字段时,它仍然会向上移动,而不会在屏幕上显示内部键盘,当它向上移动整个视图时,会留下一半的屏幕空白。

为此,我尝试了一些方法,比如启用内部键盘显示/隐藏通知,但这些通知只有在外部键盘未连接时才会被调用,这对我没有帮助。也尝试了ExternalAccessory框架,但它不会检测蓝牙连接的键盘。也尝试了EADemo检测外部键盘,它没有检测外部键盘但它检测通过底座连接的信用卡刷卡器。

如果这里的任何人都经历过这个功能,或者知道与此相关的任何事情,请告诉我。

@SpySudhir--

逻辑A:

  • 在某个文件中有一个bool变量,当键盘是外部或内部时,该变量将返回yes/no值。

  • 根据返回的布尔值调用动画函数。

逻辑B:

  • 使用NSNotificationCenter收听键盘通知。

  • 像will、show、hide这样的通知会在他们的上面放一个NSLog,看看他们中的哪一个被呼叫。

  • 如果连接了外部板,则不会调用willShow方法。所以在这种情况下,我们可以做一些变通,将bool值设置为no,或者我们可以有一个计数器,每次检查它的值是否增加了一或者是相同的,比如这样。

当字段获得焦点时,不应该向上移动视图-只应该将视图向上移动作为对UIKeyboardDidShowNotification的响应。系统会为您处理其余的事务。

最新更新