问题 如何知道键盘出现是分裂还是正常?


在我的iPad应用程序中,我发布键盘通知,将弹出窗口带到键盘上方的某个高度。这适用于普通键盘。但是在iOS 5中,如果用户选择Split键盘,则弹出窗口的行为将不正确。我如何知道用户是否选择了分离键盘,以便我可以根据所呈现的键盘排列弹出高度?


12222
2018-01-03 04:46


起源

解决了!分割键盘时不会发送通知。 - Ganesh Nayak
嗨ganesh,我有同样的键盘问题。我根据键盘是否可见来安排我的视图。即使我打开键盘我也没有得到任何通知,你可以解决这个问题吗?你能和我分享一下吗? - CKT
嗨Chaithanya Kiran,你不需要在键盘拆分时重新安排视图,因为分割键盘出现在两侧,它们占用的屏幕空间非常少,如果它真的隐藏了,那么它应该考虑一下:( - Ganesh Nayak
嗨ganesh,我的问题是我们怎么知道键盘是split.becoz in ios 5.1当我们拆分键盘时它没有给出任何通知或者它没有调用任何委托方法。那么如何识别键盘的分裂以激发我们的观点呢? - CKT


答案:


事情不是要过度思考这一点。没有任何重要性发生了变化。如果键盘进入屏幕底部的停靠位置,您将收到“显示”通知。如果它离开屏幕底部的停靠位置,您将收到“隐藏”通知。这正是iOS 5之前发生的事情。

唯一的区别是,由于移动到屏幕外而不是离开停靠位置,它可能会离开停靠位置,因为用户将其取消停靠。你仍然会得到一个“隐藏”,所以你可以将你的界面移回其基本位置。你不需要知道键盘现在是未对接的(尽管如果你真的想要,你可以发现它不是UIKeyboardDidChangeFrameNotification的屏幕外)。您不需要知道的原因是当键盘未对接/拆分时,用户可以主动并移动键盘,如果它是在需要看到的东西的方式。

因此,iOS 5之前的所有旧代码继续正常工作。这一切都非常聪明。


12
2018-01-05 11:54



嗨Ganesh,谢谢你的回复。但是我有一个问题。当键盘可见/隐藏时,我将UITextField位置安排在键盘上。但在特殊情况下,比如现在键盘可见,我已经移动了我的文本字段。在这种情况下,如果用户拆分键盘并关闭键盘,我的文本字段仍然在顶部,因为我没有得到keyboardwillhide通知。在这种情况下该怎么办? - CKT
嗨chaithanya kiran T,当用户从普通键盘切换到分割键盘时,会调用KeyboardWillHide通知。在这里,您可以重新排列TextField的框架。 - Ganesh Nayak
嗨Ganesh,你的仪式,但它直到iOS 5.0。我已经将我的iPAD升级到iOS 5.1,当我们拆分键盘时,它没有调用KeyboardWillHide notification.Apple使得拆分键盘处理更复杂:( :( :( - CKT
虽然用户可以选择移动/切换kb(如果它阻碍了),但对于企业应用程序开发人员和IT支持人员来说,这是一场噩梦。 - user523234