关闭键盘

textFieldShouldReturn

点击 return 之后键盘消失,利用的是委托方法 textFieldShouldReturn
1.首先声明遵守 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

你可能感兴趣的:(关闭键盘)