如何响应UIWindow中的触摸事件?

Run*_*oop 6 iphone objective-c

是否可以在应用程序Delegate或其他任何地方处理关键UIWindow中的触摸事件?

任何帮助将不胜感激.

Tyl*_*ler 10

在被UIWindow调用中有一个方便的catch-all方法,sendEvent:它可以看到事件处理管道开始附近的每个事件.如果你想做任何非标准的额外事件处理,这是一个放置它的好地方.像这样的东西:

- (void)sendEvent:(UIEvent *)event {
  if ([self eventIsNoteworthy:event]) [self extraEventHandling:event];
  [super sendEvent:event];  // Apple says you must always call this!
}
Run Code Online (Sandbox Code Playgroud)

文档:UIWindow类引用 | iOS事件传递文档

此博客文章还提到了如何hitTest:withEvent:在视图层次结构中绑定到目标叶子视图之前覆盖以捕获某些事件.如果需要,您还可以在UIWindow对象上覆盖该方法.