当在 tableview 之外触摸时。如何关闭 tableView? [复制]

Posted

技术标签:

【中文标题】当在 tableview 之外触摸时。如何关闭 tableView? [复制]【英文标题】:when touches outside the tableview.How to dismiss the tableView? [duplicate] 【发布时间】:2016-03-12 07:10:41 【问题描述】:

当我们点击视图时如何关闭表格视图?我正在使用触摸开始方法。但它不起作用?

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

NSLog(@"touches began");
UITouch *touch = [touches anyObject];   
if(touch.view!=myTableView)
   myTableview.hidden = YES;


当我们点击视图时如何禁用表格。我有三个表格视图?

【问题讨论】:

【参考方案1】:

试试这个

ViewDidLoad

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handelGesture:)];
        [self.view addGestureRecognizer:tap];

动作方法

- (void) handelGesture:(UITapGestureRecognizer*)sender
    
        myTableview.hidden = YES;
    

希望这会有所帮助。

【讨论】:

如果对你有帮助,请投票,谢谢:)【参考方案2】:

如果您根据您的要求进行了修改,请检查此代码是否有效谢谢

 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
         NSArray *subviews = [self.view subviews];
        for (id objects in subviews) 
            if ([objects isKindOfClass:[UITextField class]]) 
                UITextField *theTextField = objects;
                if ([objects isFirstResponder]) 
                    [theTextField resignFirstResponder];
                
             
        
    

【讨论】:

以上是关于当在 tableview 之外触摸时。如何关闭 tableView? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

iOS - 在 UITextField 之外触摸时关闭键盘

仅当在下拉列表之外单击鼠标时才关闭引导下拉列表

选择行后如何隐藏tableView

当在 Swift Spritekit 中触摸并按住屏幕时,我将如何向上移动我的节点?

重新加载除一个单元格之外的表格视图

在对话框外发生单击时如何触发事件