Вы можете сделать это следующим образом.
В вашем файле .h:
NSTimer *touchesHoldTimer;
И:
@property (nonatomic, retain) NSTimer *touchesHoldTimer;
- (void)touchesHoldCheckTime;
Не забудьте синтезировать и выпустить touchesHoldTimer
В вашем файле .m:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
NSSet *countTouches = [event allTouches];
NSLog(@"touchesBegan");
if ([countTouches count] == 1) { // Not multitouch
NSLog(@"Starting timer..");
touchesHoldTimer = [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(touchesHoldCheckTime) userInfo:nil repeats:NO];
}
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"touchesEnded");
if (touchesHoldTimer != nil) {
[touchesHoldTimer invalidate];
touchesHoldTimer = nil;
}
}
- (void)touchesHoldCheckTime {
NSLog(@"You have hold me down for 3 sec.");
[touchesHoldTimer invalidate];
touchesHoldTimer = nil;
}