Override the NSResponder
method -mouseUp:
and check the supplied event's clickCount
. If clickCount == 2
, then you're looking at a double-click. If it's 1, then a single click. 0, then they waited long enough between mouse down and mouse up that the system decided it's not a click, just distinct down then up events.
- (void)mouseUp:(NSEvent *)event
{
NSInteger clickCount = [event clickCount];
if (2 == clickCount) [self handleDoubleClickEvent:event];
}
This assumes the object handling the click is part of the responder chain. If not, you'll have to get your events another way, like subclassing NSApplication
or NSWindow
and overriding -sendEvent:
to intercept the appropriate event before it gets passed along any further.