在iPad应用中检测蓝牙键盘

4
在我的应用程序中,我有一个客户信息表单,其中使用了许多文本字段。现在当用户编辑任何字段时,我需要移动整个视图,以便编辑文本字段不会被iPad的内部键盘遮挡,这个功能运行得很好。 现在客户想要使用外部蓝牙键盘填写此表单。一旦这个外部键盘与iPad连接,那么当编辑任何文本字段时,应用程序将不会显示内部键盘,因为已经连接了外部键盘,在这种情况下,整个视图需要在页面上,而不需要向上移动。 但是当我编辑文本字段时,它仍然会向上移动而没有在屏幕上显示内部键盘,这会留下半个屏幕空白,因为它将整个视图向上移动。
为此,我尝试了一些方法,如启用内部键盘显示/隐藏通知,但这些通知只在未连接外部键盘时调用,这对我没有帮助。 还尝试了ExternalAccessory框架,但它无法检测到蓝牙连接的键盘,也尝试了EADemo来检测外部键盘,但它无法检测到外部键盘,但可以检测到通过坞口连接的信用卡刷卡器。
如果这里有任何人已经了解了这个功能或者知道与此相关的任何信息,请告诉我。
2个回答

1
当输入框获得焦点时,您不应将视图上移 - 您只应在响应UIKeyboardDidShowNotification时将视图上移。系统会为您处理其余部分。

1

@SpySudhir --

逻辑A:

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

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

逻辑B:

  • 使用NSNotificationCenter监听键盘通知。

  • 像will、show、hide通知这样的通知,在其上放置NSLog并查看哪个被调用。

  • 如果连接了外部键盘,则不会调用willShow方法。因此,在这种情况下,我们可以进行一些解决方案,并将布尔值设置为no,或者我们可以有一个计数器,并每次检查它是否增加了一个或相同的值,类似于这样。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接