如何在立即切换输入类型时获取iOS 11中的表情符号键盘的高度?

问题描述:

我使用下面的代码:如何在立即切换输入类型时获取iOS 11中的表情符号键盘的高度?

CGRect keyboardFrame = [[userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue]; 

,但它并不完全工作。

+0

https://*.com/questions/45689664/ios-11-keyboard-height-is-returning-0-in-keyboard-notification – iPatel

+0

我是使用UIKeyboardFrameEndUserInfoKey但我想继续获取切换输入类型时的高度(表示键盘显示时) –

您可以订阅通知:UIKeyboardWillChangeFrameUIKeyboardDidChangeFrame。在处理器you can get the end frame的键盘。
Here我创建了一个示例应用程序。

+0

当从ASCII转换为表情符号时,它不会发送UIKeyboardWillChangeFrame/UIKeyboardDidChangeFrame通知。 –

+0

如果键盘框架真的会改变,通知将发送。您可以在我的示例应用程序中进行检查:https://github.com/K-Be/KeyboardNotifications。 (将设备旋转到风景并切换到表情符号) –

+0

谢谢!但键盘显示时是否尝试将键盘输入类型切换为表情符号? –

通过按语言选择器按钮(地球仪)切换到表情符号键盘时,似乎发送了UIKeyboardWillChangeFrame通知。但通过长按语言选择按钮进行更改时,不会发送通知。

它看起来像我在iOS 11中的一个bug,因为即使是苹果消息应用程序和Facebook Messenger应用程序也不能处理这个权利。我已提交一个radar关于此与ID:36657137

+0

我可以在iOS 11上确认这一行为,这里是同一个问题。 – vixez