Zastąp metodę NSResponder
-mouseUp:
i sprawdź dostarczone wydarzenie clickCount
. Jeśli clickCount == 2
, to szukasz podwójnego kliknięcia. Jeśli to 1, to jedno kliknięcie. 0, następnie czekali wystarczająco długo między naciśnięciem myszy i podniesieniem myszy, że system uznał, że to nie kliknięcie, po prostu rozróżnij zdarzenia, a następnie od góry.
- (void)mouseUp:(NSEvent *)event
{
NSInteger clickCount = [event clickCount];
if (2 == clickCount) [self handleDoubleClickEvent:event];
}
Zakłada, że obiekt obsługujący kliknięcie jest częścią łańcucha respondera. Jeśli nie, będziesz musiał odbierać zdarzenia w inny sposób, na przykład podklasy NSApplication
lub NSWindow
i przesłonić -sendEvent:
, aby przechwycić odpowiednie zdarzenie, zanim zostanie ono przekazane dalej.
iOS lub Mac OS X? – duskwuff
@duskwuff OSX (zobacz tagi) – Sciguy77
@duskwuff: Również iOS nie ma kliknięć. –