iOS 点击屏幕让键盘下去

相信很多的iOS小白和我一样,处理键盘逻辑的时候会碰到难题,最突出的问题之一就是如何让键盘下去,又不会影响其他按钮和表的手势呢?其实只需要去添加手势的代理的就可以了,当我发现这个方法的时候,也真的是让我好开心,因为我在开发中遇到过很多的键盘问题,一个界面中可能会有很多的键盘,而所用到的键盘类型可能也会不一样,有的可能只需要数字键盘,有的可能会需要一个默认的键盘,数字键盘有的时候输入中文后,后端处理就是异常,会报错,因此让我们前端去限制。我们如果使用数字键盘,这个时候又不想影响其他的手势,这个时候我们就可使用这个方法:(支持不影响表的代理,支持输入框的一键清除,和其他按钮的点击事件,不要忘记添加手势的代理)

 UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewTapped:)];

    tap.cancelsTouchesInView = NO;

    tap.delegate = self;

    [self.view addGestureRecognizer:tap];

 

-(void)viewTapped:(UITapGestureRecognizer*)tap

{

    [self.view endEditing:YES];    

}

 

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{

    

    // 若为UITableViewCellContentView(即点击了tableViewCell),则不截获Touch事件

    if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"] || [NSStringFromClass([touch.view class]) isEqualToString:@"UITextField"] || [NSStringFromClass([touch.view class]) isEqualToString:@"UIButton"]) {

        return NO;

    }

    return YES;

}

posted @ 2016-04-11 19:51  silence花田  阅读(1046)  评论(0编辑  收藏  举报