Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa touch 在给定条件下截获tap事件_Cocoa Touch_Ios - Fatal编程技术网

Cocoa touch 在给定条件下截获tap事件

Cocoa touch 在给定条件下截获tap事件,cocoa-touch,ios,Cocoa Touch,Ios,我创建了一个带有UIPickerView的视图,当用户按下按钮时会显示该视图 现在,当用户点击屏幕上的任意位置时,我需要使UIPickerView消失(显然是在UIPickerView之外) 如何仅在UIPickerView可见时拦截此点击? 谢谢大家! 您可能需要将UIgestureRecognitor附加到主视图。一旦有人点击某个地方的主视图,您就可以获得一个事件并删除UIPickerView。在ViewController中编写如下内容: UITapGestureRecognizer *t

我创建了一个带有UIPickerView的视图,当用户按下按钮时会显示该视图

现在,当用户点击屏幕上的任意位置时,我需要使UIPickerView消失(显然是在UIPickerView之外)

如何仅在UIPickerView可见时拦截此点击?
谢谢大家!

您可能需要将UIgestureRecognitor附加到主视图。一旦有人点击某个地方的主视图,您就可以获得一个事件并删除UIPickerView。在ViewController中编写如下内容:

UITapGestureRecognizer *tgr = [[UITapGestureRecognizer alloc] 
                         initWithTarget:self action:@selector(viewWasTapped)];
[self.view addGestureRecognizer:tgr];
在viewWasTapped方法中,您将收到ViewControllers视图上的所有点击


希望能有所帮助。

您不需要在问题标题的开头使用
[ios iphone]
。这就是标签的用途。;)谢谢你,esqew。我更改了标题。这只是解决问题的一部分。。。我可以在视图上添加识别器。我的问题是我需要切换识别器。如果uipicker视图可见,则添加它。。。。当它被移除时,我也会移除识别器。我想知道这是否是一个好方法。请注意,识别器需要放置在主视图上;也就是说,包含整个屏幕的视图。