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
NSTableView
, NSStatusItem
, NSPathControl
, NSBrowser
, NSMatrix
.
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.