2016-02-22 监听键盘 隐藏bar

本文详细介绍了如何在iOS应用中隐藏状态栏并实现键盘消失的两种方法:第一种方法通过调用相关API直接让键盘消失;第二种方法通过监听键盘显示与隐藏的通知,动态调整视图布局。此外,还提供了键盘出现时将聊天视图向上移动,键盘消失后恢复原位的解决方案。

- (BOOL)prefersStatusBarHidden{

    return YES;

}   //隐藏bar

 

 2:让键盘消失

////    [_lastField resignFirstResponder];

//    [self.view endEditing:YES];//gzz0223

//    

//    //gzz0223 键盘消失

//    NSArray *subviews = [self.view subviews];

//    for (id objInput in subviews) {

//        if ([objInput isKindOfClass:[UITextField class]]) {

//            UITextField *theTextField = objInput;

//            if ([objInput isFirstResponder]) {

//                [theTextField resignFirstResponder];

//            }

//        }

//    }

        [[[UIApplication sharedApplication] keyWindow] endEditing:YES];

 

 

 

 //监听键盘出现

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];

    //监听键盘消失

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

 

}

 

//键盘出现,chatView向上移动

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

    //获取键盘的高度

    CGSize size = [noti.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue].size;

    //屏幕宽高

    CGSize winSize = self.view.frame.size;

    //tableView的大小

    _tableView.frame = CGRectMake(0, 0, winSize.width, winSize.height - 40 - size.height);

    //chatView的位置

    _chatView.frame = CGRectMake(0, winSize.height - 40 - size.height, winSize.width, 40);

}

 

//键盘消失,将chatView恢复原位

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

    //屏幕宽高

    CGSize winSize = self.view.frame.size;

    //tableView的大小恢复

    _tableView.frame = CGRectMake(0, 0, winSize.width, winSize.height - 40);

    //chatView的位置恢复

    _chatView.frame = CGRectMake(0, winSize.height - 40, winSize.width, 40);

}

转载于:https://www.cnblogs.com/gzz2016/p/5208892.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值