美文网首页
iOS丶键盘收起

iOS丶键盘收起

作者: 灰衣 | 来源:发表于2017-01-07 10:32 被阅读0次

    在使用UITextField编辑的时候都会跟键盘打交道。

    (模拟器打开键盘的快捷键是 command + k)

    基本遇到的键盘收起有以下情况:

    • 让textFiled放弃成为第一响应者(resignFirstResponder)
    • 让view或者子view强制结束编辑状态(endEditing)

    1.点击 return 后收起键盘。

    可以点击return收起键盘并不意味着弹出来的键盘一定都有return这个按键,比如数字键盘类型就没有,UIKeyboardTypeWebSearch类型的键盘return键就变成了Go键,需要注意的是这时候的Go键相当于return键。

    要想实现点击return让键盘收起,首先需要设置textField代理,当然还有遵循UITextFieldDelegate协议:

    _textField.delegate = self;

    然后实现协议方法- (BOOL)textFieldShouldReturn:(UITextField *)textField;,当然你也可以在这个方法里 main实现一些需求逻辑,比如判断输入的内容符不符合要求等。

    - (BOOL)textFieldShouldReturn:(UITextField *)textField{ return [textField resignFirstResponder]; }

    2.点击背景后收起键盘

    点击背景收起键盘可以实现view的- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event方法,然后执行view的- (BOOL)endEditing:(BOOL)force;方法。

    - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ [self.view endEditing:YES]; //实现该方法是需要注意view需要是继承UIControl而来的 }
    还有一些比较笨的方法也可以实现达到点击背景后收起键盘的效果,比如:在背景view上面加手势,添加UIButton或者view,然后在对应的点击事件的监听方法中实现resignFirstResponder或者endEditing。

    UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(keyboardHide:)]; //设置成NO表示当前控件响应后会传播到其他控件上,默认为YES。 tapGestureRecognizer.cancelsTouchesInView = NO; //将触摸事件添加到view上 [self.view addGestureRecognizer:tapGestureRecognizer];

    -(void)keyboardHide:(UITapGestureRecognizer*)tap{ [textFiled resignFirstResponder]; }

    自己就先掌握这么多,感觉对于现阶段的我够用了,如果有更多以后会有添加。

    相关文章

      网友评论

          本文标题:iOS丶键盘收起

          本文链接:https://www.haomeiwen.com/subject/mpqfbttx.html