是否可以在我的应用的所有窗口上截取所有用户操作,例如点按,滑动,输入文字等?
答案 0 :(得分:3)
就像我在评论中所说,子类UIApplication
并覆盖实例方法sendEvent:
。
来自UIApplication类的documentation,-sendEvent:
方法:
<强>讨论强>
如果您需要,可以截取传入的事件 继承UIApplication并重写此方法。对于每个事件 你拦截,你必须通过调用[super sendEvent:event]来调度它 在您的实施中处理事件后。
所以,它看起来像这样:
<强> CustomUIApplication.h:强>
@interface CustomUIApplication:UIApplication
- (void)sendEvent:(UIEvent *)event;
@end
<强> CustomUIApplication.m:强>
@implementation CustomUIApplication
- (void)sendEvent:(UIEvent *)event
{
// ...Do your thing...
[super sendEvent:event];
}
@end
当然,您需要确保使用您的子类而不是默认的UIApplication
。 Here is a Stack Overflow answer on how to do it in Objective-C和here in Swift。