首页 > 代码库 > iOS8以后第三方键盘获取高度不对的问题
iOS8以后第三方键盘获取高度不对的问题
iOS8以后苹果可以安装第三方键盘,
通过断点我们会发现使用第三方键盘之后,
键盘将要弹出的方法:- (void)keyBoardWillShow:(NSNotification *)notification会执行三次,
三次的高度分别是:0:216:282。我们发现我们需要的是第三次的高度。
我们需要注册键盘隐藏和显示的通知:
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(keyBoardDidHide:) name:UIKeyboardWillHideNotification object:nil];
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
1 #pragma mark–键盘显示事件 2 3 - (void)keyboardWillShow:(NSNotification *)notification { 4 CGFloat curkeyBoardHeight = [[[notification userInfo] objectForKey:@"UIKeyboardBoundsUserInfoKey"] CGRectValue].size.height; 5 CGRect begin = [[[notification userInfo] objectForKey:@"UIKeyboardFrameBeginUserInfoKey"] CGRectValue]; 6 CGRect end = [[[notification userInfo] objectForKey:@"UIKeyboardFrameEndUserInfoKey"] CGRectValue]; 7 8 // 第三方键盘回调三次问题,监听仅执行最后一次 9 if(begin.size.height>0 && (begin.origin.y-end.origin.y>0)){ 10 11 CGFloat keyBoardHeight = curkeyBoardHeight; 12 13 NSLog(@"第三次:%f",keyBoardHeight); 14 [UIView animateWithDuration:0.05 animations:^{ 15 self.bgView.hidden = NO; 16 self.commentToolView.y = kScreenHeight - keyBoardHeight - 44; 17 18 }]; 19 } 20 } 21 22 #pragma mark–键盘隐藏事件 23 24 -(void)keyBoardDidHide:(NSNotification *)notification{ 25 NSLog(@"键盘隐藏"); 26 self.bgView.hidden = YES; 27 self.commentToolView.y = kScreenHeight; 28 }
iOS8以后第三方键盘获取高度不对的问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。