Предположительно, вы хотите определить, удерживается ли мышь в течение определенного периода времени.Это довольно просто;это просто требует таймера.
В вашем mouseDown:
вы запускаете таймер, который срабатывает после выбранного вами периода.Вам нужно вставить это в ивар, потому что вы также будете ссылаться на него в mouseUp:
- (void)mouseDown: (NSEvent *)theEvent {
mouseTimer = [NSTimer scheduledTimerWithTimeInterval:mouseHeldDelay
target:self
selector:@selector(mouseWasHeld:)
userInfo:theEvent
repeats:NO];
}
В mouseUp:
, уничтожьте таймер:
- (void)mouseUp: (NSEvent *)theEvent {
[mouseTimer invalidate];
mouseTimer = nil;
}
Если таймерсрабатывает, затем вы знаете, что кнопка мыши удерживалась в течение указанного вами периода времени, и вы можете выполнять любые действия, которые вам нравятся:
- (void)mouseWasHeld: (NSTimer *)tim {
NSEvent * mouseDownEvent = [tim userInfo];
mouseTimer = nil;
// etc.
}