近期在项目中有一个需求是:8秒钟内如果用户没有跟屏幕发生交互则提示一下用户。
经过google和实践找到一种实现方法步骤如下:
1.让AppDelegate继承UIApplication而不是UIResponser。
2.重载sendEvent方法。
- (void)sendEvent:(UIEvent *)event
{
[super sendEvent:event];//这里一定不能漏掉,否则app将不能成功启动。
NSSet *allTouches = [event allTouches];
if ([allTouches count] > 0)
{
UITouchPhase phase = ((UITouch *)[allTouches anyObject]).phase;
if (phase == UITouchPhaseBegan)
NSLog(@"send event");
}
}
3.为了能让继承了UIApplication的AppDelegate起作用,需要将main.m中的
UIApplicationMain
更改为:
UIApplicationMain(argc, argv, NSStringFromClass([AppDelegate class]), NSStringFromClass([AppDelegate class]));