继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

iOS键盘出现/消失通知

Realank刘
关注TA
已关注
手记 11
粉丝 11
获赞 446

做输入类页面的时候,经常要监听键盘弹起、收起的事件,对内容(一般是ScorllView)进行重新的布局,防止输入框被挡住。
下面的代码就是键盘事件通知的示例,供大家参考

首先,添加和移除通知


- (void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(keyboardWillShow:)
                                                 name:UIKeyboardWillShowNotification
                                               object:nil];

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(keyboardWillHide:)
                                                 name:UIKeyboardWillHideNotification
                                               object:nil];
}

- (void)viewDidDisappear:(BOOL)animated {
    [super viewDidDisappear:animated];
    [[NSNotificationCenter defaultCenter] removeObserver:self
                                                    name:UIKeyboardWillShowNotification
                                                  object:nil];

    [[NSNotificationCenter defaultCenter] removeObserver:self
                                                    name:UIKeyboardWillHideNotification
                                                  object:nil];
}

之后,响应通知

- (void)keyboardWillShow:(NSNotification *)notification {

    NSDictionary *userInfo = [notification userInfo];
    NSValue *aValue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];

    CGRect keyboardRect = [aValue CGRectValue];
    keyboardRect = [self.view convertRect:keyboardRect fromView:nil];

    keyboardHeight = keyboardRect.size.height;

    CGRect frame = self.view.bounds;
    frame.size.height -= keyboardHeight;
    self.contentScrollView.frame = frame;
    self.contentScrollView.contentSize = CGSizeMake(SCREEN_WIDTH, CGRectGetMaxY(self.confirmBtn.frame)+ 20);
}

- (void)keyboardWillHide:(NSNotification *)notification {

    keyboardHeight = 0;

    self.contentScrollView.frame = self.view.bounds;
//    self.contentScrollView.contentSize = self.view.bounds.size;
}
打开App,阅读手记
12人推荐
发表评论
随时随地看视频慕课网APP

热门评论

挺好的文章

查看全部评论