IOS8.0之后可以安装第三方键盘,如百度键盘,搜狗键盘之类的。
那么问题就来了。
以前获取键盘的代码就获取不了第三方键盘的高度了。获取的高度都为0.
那么有人知道如何获取第三方键盘的高度吗?

解决方案 »

  1.   

    拿搜狗键盘为例,从系统键盘切换到搜狗的,首先会关闭系统的键盘,但这个关闭并不会触发键盘关闭事件,然后再打开搜狗的键盘,整个过程会多次触发keyboardWasShown,所以只能用keyboardWillChangeFrame来处理。
      

  2.   

    文章链接:http://blog.csdn.net/u010112623/article/details/49204845
      

  3.   

    反复测试,打印[[notification userInfo] 数据分析,发现以下条件可以判断出是第三次回调,欢迎验证:- (void)keyboardWillShow:(NSNotification *)notification {
     CGFloat curkeyBoardHeight = [[[notification userInfo] objectForKey:@"UIKeyboardBoundsUserInfoKey"] CGRectValue].size.height;
        CGRect begin = [[[notification userInfo] objectForKey:@"UIKeyboardFrameBeginUserInfoKey"] CGRectValue];
        CGRect end = [[[notification userInfo] objectForKey:@"UIKeyboardFrameEndUserInfoKey"] CGRectValue];
        
        // 第三方键盘回调三次问题,监听仅执行最后一次
        if(begin.size.height>0 && (begin.origin.y-end.origin.y>0)){
            keyBoardHeight = curkeyBoardHeight;
            [self showKeyboard:notification];
        }
    }
      

  4.   

    YYkeyboard 三方的,直接可以用
      

  5.   

    监听UIKeyboardWillChangeFrameNotification可以解决这个问题。