objective-c - 在某些 View 中捕获屏幕上任意位置的触摸事件?

标签 objective-c ios ipad event-handling uitouch

我有一个菜单,如果它在一定时间后处于非事件状态,我希望自动隐藏该菜单。该菜单由 UIViewController 的层次结构组成,呈现各种不同的 View 。

我正在考虑运行一个计时器,只要有触摸,它就会失效并重新开始。

是否可以捕获一组 UIView 中的所有触摸事件?也许只是保留一个 bool 值并使用主 UIWindow 来捕获触摸事件?

编辑:

我的应用程序是一种信息亭应用程序,带有主屏幕和菜单。当菜单打开时,我希望它运行一个自动关闭计时器,该计时器在整个菜单屏幕中的任何触摸后重置。菜单以模态方式显示在整个屏幕上。

最佳答案

一种确定的方法是继承 UIApplication 并重写 - (void)sendEvent:(UIEvent *)event 方法,应用中发生的每个触摸事件都会经历使用此方法,您可以检查 UIEvent 类型以查看其是否为 UIEventTypeTouches 并重置计时器。

另一种方法只需在整个用户可​​访问的 UI 上添加一个透明层并覆盖 hitTest:withEvent:

关于objective-c - 在某些 View 中捕获屏幕上任意位置的触摸事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9493573/

相关文章:

objective-c - Tesseract OCR 只有数字

ios - 理解如何在 Swift 中初始化 Object-c 对象的问题

ios - 为什么 Y 位置为 0 的 UILabel 不位于屏幕顶部

iphone - 尝试设置手势识别时崩溃

iphone - 如何使用 Core Data 设计多标签功能?

ios - 确定 ios 相机纵横比

objective-c - 在XML文档中使用“小于”字符(<)并进行解析

jquery - IOS4清除缓存错误?!与 "Add to Home Screen"应用程序和 localStorage

iphone - iOS - 升级到 Xcode 4.5 后链接器错误,Core Plot 相关?

objective-c - 为什么我的 UIActionSheet 被我的 TabBarController 隐藏了?