简体   繁体   中英

Receiving double-click event

I've been searching the Apple docs and the only function I could find pertaining to a double click just returned the acceptable time between clicks for it to be considered a double click.

Can someone please show me an example of a double click event?

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.

请参阅NSEvent的-clickCount方法。

Note also that some NSControl has setDoubleAction: so that the selector registered via setDoubleAction: is sent to the target. See the official documentations of

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM