ios - 在 iPad App 中检测蓝牙键盘

标签 ios ipad keyboard bluetooth eaaccessory

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

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

如果这里有人使用过此功能或知道与此相关的任何信息,请告诉我。

最佳答案

@SpySudhir——

逻辑A:

  • 在一些文件中有一个 bool 变量,当键盘是外部或内部时,它将返回是/否值。

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

逻辑 B:

  • 使用 NSNotificationCenter 监听键盘通知。

  • 诸如 will、show、hide 之类的通知会在它们上面放置一个 NSLog 并查看它们中的哪一个被调用。

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

关于ios - 在 iPad App 中检测蓝牙键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9312658/

相关文章:

swift - 仅在 TestFlight 版本和 IOS 14 中显示键盘后应用程序崩溃

c# - 如何以编程方式按 Enter?

c# - 如何在用户输入时捕获所有输入到文本框中的字符?

ios - iPad:不同分辨率下项目的具体/准确位置

iphone - 为什么 nspredicate 会崩溃?

iOS/iPhone - 设置任意行的颜色

ios - 将 SortInPlace 与一些可选值一起使用(无)

javascript - iOS 上网页的 div 数量或内存限制?

javascript - iOS 中 Fusioncharts 的点击事件

ios - Swift UnsafeMutableRawPointer 错误