美文网首页
实现点击UITableView空白处撤销键盘

实现点击UITableView空白处撤销键盘

作者: 罗小耳 | 来源:发表于2016-06-30 17:32 被阅读376次

    写在前面

    之前一直对UItableView点击非TextField处撤销键盘头大,要么是键盘撤销了,结果- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath方法不响应了;要么是- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath方法响应,点击Cell可以撤销,但是点击空白处不能撤销键盘;一直也没有找到一个合适的方法,今天终于找到了一个非常好的方法解决这个历史遗留问题。

    步入正题

    1. 创意一个继承自UITableView的类
    2. 重写系统方法
    - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
        id view = [super hitTest:point withEvent:event];
        if (![view isKindOfClass:[UITextView class]]) {
            [self.superview endEditing:YES];
            [self endEditing:YES];
        }
        return view;
    }
    3. 将需要撤销键盘的TableView继承自上面自定义的TableView即可。
    

    相关文章

      网友评论

          本文标题:实现点击UITableView空白处撤销键盘

          本文链接:https://www.haomeiwen.com/subject/mwcfjttx.html