UIScrollView 和 UITextView/UITableView拖动隐藏键盘

一. 通常情况下我们要显示或隐藏键盘都是通过代理监听的方式实现的例如:

  1. 遵循
    [self.textfieldview becomeFirstResponder]; // textView成为第一响应者,立即调出键盘;

2.隐藏键盘时, 释放第一响应者即可回收键盘

- (BOOL)textFieldShouldReturn:(UITextField *)textField{
    
    [self.textfield resignFirstResponder];
}```
***
二. 但有时候,我们需要处理在没有任何输入的时候,用户仅仅拖动了屏幕也可以退出键盘,一种常见的方式是使用UIScrollView的代理方法,监听拖动事件,一旦发生拖动则通过注销第一响应者的方式来退出键盘;
  • (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
      {
       [self.view endEditing:YES];
      }
***
三. 其实IOS7.0系统中,UIScorllView中已经为我们提供了一个属性来判断是否拖动取消键盘,这样只需要通过设置这个属性的值来决定UIScorllView是否在被拖动的时候退出键盘;
第一种方法: 当布局使用StoryBoard时, 我们可以指定某一个UI控件, 然后Keyboard-->dismiss on drag
![StoryBoard方式.png](http://upload-images.jianshu.io/upload_images/1803308-8a99fc383f81535b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
***
第二种方法: 代码
>这里指定当点击tableView时  , 隐藏键盘
self.tableView.keyboardDismissMode  = UIScrollViewKeyboardDismissModeOnDrag;
//UIScrollViewKeyboardDismissModeInteractive;

你可能感兴趣的:(UIScrollView 和 UITextView/UITableView拖动隐藏键盘)