检测iPad键盘隐藏与外部键盘连接?

Ben*_*tto 17 iphone keyboard ipad

iPad虚拟键盘将在(至少)这三种情况中的一种情况下消失:

  1. 如果控件(例如,UITextField)以编程方式取消第一响应者.
  2. 如果用户点击右下角的"关闭键盘"按钮.
  3. 如果用户连接到USB /键盘底座外围设备.

在所有情况下,我得到了UIKeyboardWillHideNotification.

问题是前两种情况通常是等价的 - 换句话说,用户完成了编辑文本字段.但在第三种情况下,文本字段仍在编辑中,仅来自另一个输入源.

问题是检测案例2和3之间的区别.我在两种情况下都得到了UIKeyboardWillHideNotification.在案例2中,我通常还想锁定编辑控件并提交值.在案例3中,我通常不想做任何事情并允许继续编辑.

但我怎么能区分呢?

Apple的Pages应用程序似乎能够在文档标题重命名上区分它.

dra*_*ard 2

我会查看随通知传递的 UIKeyboardBoundsUserInfoKey。物理键盘可能有空边界。