如何获取iOS 8中第三方键盘的大小?

5

我已经在我的iOS 8版iPhone 5s手机上安装了Swift Keyboard。

原始的(Objective-C)获取键盘大小的方法只适用于系统键盘,例如:

- (void)keyboardWillShow:(NSNotification *)notification
{
    CGSize keyboardSize = [[[notification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
}

如果我使用Swift键盘... keyboardSize.height的值是零。如何获取iOS 8中第三方键盘的大小?

谢谢。


你是否曾经找到了正确的解决方案?下面的答案对我的情况不起作用。我已经在使用 UIKeyboardFrameEndUserInfoKey 来获取键盘矩形。 - Hemang
1个回答

8
我想这是因为您在键盘实际显示之前获取了大小。
尝试替换为:
objectForKey:UIKeyboardFrameBeginUserInfoKey

使用:

objectForKey:UIKeyboardFrameEndUserInfoKey

这对我来说使用SwiftKey很有效!


3
这符合我的研究结果。我也注意到SwiftKey在显示时发送了3个事件,其中结束高度设置为0,然后是键盘的高度,然后是键盘加上自动完成区域的高度。我的代码没有预料到会连续收到3个不同高度的UIKeyboardWillShowNotification事件,因此需要进行一些调整。 - w0mbat
1
这对我不起作用,我已经使用 UIKeyboardFrameEndUserInfoKey 来获取键盘的矩形了。还有其他方法吗? - Hemang

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接