iOS添加键盘弹出监听事件 更新键盘弹出状态栏变白色的问题

时间:2019-04-19
本文章向大家介绍iOS添加键盘弹出监听事件 更新键盘弹出状态栏变白色的问题,主要包括iOS添加键盘弹出监听事件 更新键盘弹出状态栏变白色的问题使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

iOS添加键盘弹出监听事件

 旭日猎鹰 关注

2017.07.17 09:19* 字数 72 阅读 7465评论 0喜欢 0

当键盘弹出时,页面控件需要重新布局,需要获取键盘的高度,添加键盘监听事件

1.在viewDidLoad中添加键盘监听

// 键盘出现的通知

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWasShown:) name:UIKeyboardDidShowNotification object:nil];

    // 键盘消失的通知

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

2.键盘监听方法

#pragma mark -键盘监听方法

- (void)keyboardWasShown:(NSNotification *)notification

{

    // 获取键盘的高度

    CGRect frame = [[[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];

    CGFloat height = kViewHeight - 64 - frame.size.height;

    

    if (height < 455.5) {

        self.textFiledScrollView.frame = CGRectMake(0, 64, kViewWidth, height);

    }

    

    if (![self.titleTextView.text isEqualToString:@""]) {

        self.titleTextView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);

    } else {

        self.titleTextView.contentInset = UIEdgeInsetsMake(20, 0, -20, 0);// 光标偏移

    }

    

    [self contentSizeToFit];// 垂直居中

}

- (void)keyboardWillBeHiden:(NSNotification *)notification

{

    self.textFiledScrollView.frame = CGRectMake(0, 64, kViewWidth, 455.5);

}

 

3.注意要在dealloc中,需要移除

- (void)dealloc

{

    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardDidShowNotification object:nil];

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

}

代码仅供参考。

 

更新键盘弹出状态栏变白色的问题

 

#pragma mark -键盘监听方法

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

[self setNeedsStatusBarAppearanceUpdate];

    

}

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

[self setNeedsStatusBarAppearanceUpdate];

    

}