使用手势,让键盘在点击空白处消失

我们经常会碰到一些情况,比如,需要在superview上增加一个scrollview,或者view,在scrollview和view上添加控件,

比如添加一个textfield,那么原来使用的点击空白处让键盘消失的方法,就无法响应,因为响应的方法主要作用在superview上,

我们可以这样做来实现这样的操作:

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

然后实现它的方法就可以了:

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

比较下原来的方法:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ 

          [textFiled resignFirstResponder];  

     }

合适的时候用合适的方法

posted @ 2016-04-08 11:29  稻草人11223  阅读(293)  评论(0编辑  收藏  举报
返回顶部