4

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

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

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

4

2 回答 2

1

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

于 2013-04-07T09:40:02.280 回答
1

@SpySudhir——

逻辑 A:

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

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

逻辑 B:

  • 使用 NSNotificationCenter 收听键盘通知。

  • will、show、hide 等通知会在其上放置一个 NSLog,然后查看其中哪一个被调用。

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

于 2012-03-02T14:04:54.723 回答