iOS开发-键盘高度

一、监听键盘出行和消失

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardHideOrShow:) name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardHideOrShow:) name:UIKeyboardWillHideNotification object:nil];
- (void)keyboardHideOrShow:(NSNotification *)notification {
    NSString *notificationName = notification.name;     //获取通知名称
    NSDictionary *keyboardInfo = notification.userInfo;//获取通知内容
    /*
     NSLog(@"keyboardInfo: %@", keyboardInfo);
     键盘将要弹起时打印 keyboardInfo: {
     UIKeyboardAnimationCurveUserInfoKey = 7;
     UIKeyboardAnimationDurationUserInfoKey = "0.25";
     UIKeyboardBoundsUserInfoKey = "NSRect: {{0, 0}, {414, 270}}";
     UIKeyboardCenterBeginUserInfoKey = "NSPoint: {207, 871}";
     UIKeyboardCenterEndUserInfoKey = "NSPoint: {207, 827}";
     UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 736}, {414, 270}}";
     UIKeyboardFrameEndUserInfoKey = "NSRect: {{0, 692}, {414, 270}}";
     UIKeyboardIsLocalUserInfoKey = 1;
     }
     键盘将要消失时打印 keyboardInfo: {
     UIKeyboardAnimationCurveUserInfoKey = 7;
     UIKeyboardAnimationDurationUserInfoKey = "0.25";
     UIKeyboardBoundsUserInfoKey = "NSRect: {{0, 0}, {414, 270}}";
     UIKeyboardCenterBeginUserInfoKey = "NSPoint: {207, 827}";
     UIKeyboardCenterEndUserInfoKey = "NSPoint: {207, 871}";
     UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 692}, {414, 270}}";
     UIKeyboardFrameEndUserInfoKey = "NSRect: {{0, 736}, {414, 270}}";
     UIKeyboardIsLocalUserInfoKey = 1;
     }
     */
    CGRect keyboardFrame = [keyboardInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];     
    //keyboardFrame.size.height 为键盘的高度
    if ([notificationName isEqualToString:UIKeyboardWillHideNotification]) {
        //键盘将要消失
    }
    else {
        //键盘将要弹起
    }
}

二、禁止UIWebView随键盘的弹起而往上滚动 借鉴于此,谢谢

问题:当UIWebView中的html有输入框,点击输入框,UIWebView会随键盘的弹起而整体往上移动,收起键盘后,UIWebView无法回到原来的位置;
问题的原因:由于UIWebView继承的是UIScrollerView,因此,当键盘弹起时,UIScrollerView的content会整体往上移动;

解决问题的方案:
<UIScrollViewDelegate>
_webView.scrollView.delegate = self;
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
    return nil;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,194评论 4 61
  • 努力有那么难嘛?坚持有那么难嘛?
    WinMini阅读 702评论 0 0
  • 近日看到一朋友写的日志,说“写作和旅行是两个很好的养生办法,因为它们都是在梳理灵魂。肉体是人的硬件,灵魂是人的软件...
    自在牛阅读 4,014评论 0 8
  • H3C 有个叫 UISM 的产品,有点意思,把 x86 放到了交换机里头, 成了机架内基础设施的管理平台,能够管理...
    Alick阅读 9,331评论 0 0