关闭键盘

textFieldShouldReturn

点击 return 之后键盘消失,利用的是委托方法 textFieldShouldReturn
1.首先声明遵守 UITextFieldDelegate 协议

<UINavigationBarDelegate,UIImagePickerControllerDelegate,UITextFieldDelegate>
  1. 在代码中实现方法
-(BOOL)textFieldShouldReturn:(UITextField *)textField{
    [textField resignFirstResponder];
    return YES;
}

UIControl

UIControl对象采用了一种新的事件处理机制,将前一节指节处理的触摸时间直接转换为简单操作,这样可以无需关心用户访问控件的具体方式。触摸事件到达UIControl对象(由响应链者派遣)后,在UIResponder的方法中(如:touchBegin:withEvent)中,UIControl将标准的触摸事件转换为特殊的控件事件,简单的理解就是,UIControl把复杂的触摸事件封装成了简单的易于使用的控件事件。例如通过UIControl对象处理后,按下按钮的事件就被封装成一个控件事件,而不用去判断触摸屏幕的整个操作过程。(参考)

如果更好的体验是点按其他区域时也能关闭键盘,原理是向顶层视图发送endEditing消息。

  1. 先将BNRDetailViewController 对象的视图从 UIView 改为 UIControl 对象,才能处理触摸事件。
  1. 添加一个事件,类型设置为 UIControlEventTouchUpInside。


    UIControlEventTouchUpInside.png
  1. 事件添加的代码如下:
- (IBAction)backgroundTapped:(id)sender {
    [self.view endEditing:YES];
}

思维导图

关闭键盘.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容