iOS弹出键盘如果遮挡控件的话,如何调整控件位置,获取弹出键盘高度

添加监听

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

键盘监听事件

 // 键盘监听事件
-(void)keyboardAction:(NSNotification *)sender{
  NSDictionary *userInfo = [sender userInfo];
  NSValue *value = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];
// 通过通知对象获取键盘frame: [value CGRectValue]
  CGFloat keyboardHeight = [value CGRectValue].size.height;
  CGFloat bottomHeight = self.Height - self.backgroundView.Bottom - 15;
  if (bottomHeight <= keyboardHeight) {
    [UIView animateWithDuration:0.2 animations:^{
      self.backgroundView.Top = self.backgroundView.Top - keyboardHeight + bottomHeight;
    }];
  }
}

可能用到的其他方法

// 点击非TextField区域取消第一响应者
 - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
     [self.inputField resignFirstResponder];
 }
 
 // 点击键盘Return键取消第一响应者
 - (BOOL)textFieldShouldReturn:(UITextField *)textField{
     [self.inputField resignFirstResponder];
     return  YES;
 }
 
 // 点击按钮取,消第一响应者
 - (IBAction)okAction:(UIButton *)sender {
     [self.inputField resignFirstResponder];
 }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 3,538评论 1 11
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,144评论 1 32
  • 本节介绍各种常见的浏览器事件。 鼠标事件 鼠标事件指与鼠标相关的事件,主要有以下一些。 click 事件,dblc...
    许先生__阅读 2,513评论 0 4
  • Dom事件 事件是一种异步编程的实现方式,本质上是程序各个组成部分之间的通信。DOM支持大量的事件 (一) Eve...
    woow_wu7阅读 1,807评论 0 1
  • 姥姥:这种短信不会是骗人的吧。 盆盆:不回就没事。 姥姥:我回了…… 盆盆:回一条也没啥事,放心。 姥姥:我回了两...
    数字姥姥阅读 155评论 0 1