获取自定义键盘的高度(iOS 8)

获取自定义键盘的高度(iOS 8),ios,swift,keyboard,Ios,Swift,Keyboard,我需要根据用户激活的默认键盘的高度调整几个UI元素的位置。我知道如何获取默认系统键盘的高度: keyboardHeight = (sender.userInfo![UIKeyboardFrameBeginUserInfoKey] as NSValue).CGRectValue().height 但是,当我将此代码与自定义键盘(例如快捷键)一起使用时,高度返回为0。如何获得自定义键盘的高度?抱歉,如果这已经被回答,但我还没有找到一个回答线程。。。谢谢 解决了!事实证明,我在手机上测试的自定义键盘

我需要根据用户激活的默认键盘的高度调整几个UI元素的位置。我知道如何获取默认系统键盘的高度:

keyboardHeight = (sender.userInfo![UIKeyboardFrameBeginUserInfoKey] as NSValue).CGRectValue().height

但是,当我将此代码与自定义键盘(例如快捷键)一起使用时,高度返回为0。如何获得自定义键盘的高度?抱歉,如果这已经被回答,但我还没有找到一个回答线程。。。谢谢

解决了!事实证明,我在手机上测试的自定义键盘(快捷键)有三个键盘,将显示由于未知原因的回调。。。SwiftKey/iOS 8部分编码错误?无论如何,我编写代码时只使用了第一次回调,但第三次回调返回了一个具有正确信息的发送者。按顺序,在三个回调中的每个回调上,
UIKeyboardFrameEndUserInfoKey
返回的高度为:

No keyboard (0.0)
System's keyboard (also SwiftKey's keyboard without the autocomplete frame above the main keyboard)
Custom keyboard

我使用了第三次回调的信息,并且能够正确地更新我的UI元素。

您是否尝试过
UIKeyboardFrameEndUserInfoKey
?在我们的一个应用程序中,我们只是简单地禁用了所有自定义键盘,主要用于UI目的。这是我作为临时修复所做的,谢谢!我仍然希望能够启用自定义键盘,这有助于更好的用户体验。你能在这里分享代码吗?它对苹果键盘也有效吗?嗨,对不起-很遗憾,我再也无法访问代码了,因为我签署了保密协议,无法为自己保存应用程序的副本。我想如果你看一下键盘就会显示回调,你就能找到你想要的。让它打印每个回调并查看返回的值;您应该在其中一个回调中找到要查找的。具体来说,将
keyboardHeight=(sender.userInfo![UIKeyboardFrameBeginUserInfoKey]打印为NSValue)。CGRectValue().height
可能会对您有所帮助。