【发布时间】:2014-12-09 11:34:43
【问题描述】:
我想知道用户何时触摸了我的应用屏幕上的任何位置。
我已经研究过使用 -(UIResponder *)nextResponder 但不幸的是这不起作用,因为我还自动重新加载了一个表,所以当发生这种情况时会触发它。
我还尝试了一个手势识别器,代码如下。但这只会识别视图上的触摸。由于我有很多按钮,用户将使用它来操作应用程序。我想避免在屏幕上的每个按钮和段控件中添加手势识别器或代码
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapOnView:)];
[self.mainView addGestureRecognizer:tap];
- (void)tapOnView:(UITapGestureRecognizer *)sender
{
//do something
}
我也尝试过 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event ,但这与手势识别器有相同的问题。
我想知道是否有任何方法可以完成这项任务。我希望我能够从 nextResponder 中识别事件的类型,然后我可以检测它是否是按钮。
编辑:我正在处理这个问题的原因是我的应用程序需要保持活动状态并且无法锁定屏幕(所以我禁用了屏幕锁定)。为避免过度使用电量,我需要调暗屏幕,然后在触摸应用程序后将亮度恢复到原始水平。我需要这个功能只出现在我的 1 个视图控制器上。
【问题讨论】:
标签: ios objective-c cocoa-touch uigesturerecognizer uiresponder