我一直在搜索苹果文档,我能找到的唯一与双击有关的函数只是返回可接受的两次点击之间的时间,使其被视为双击。
有人能告诉我一个双击事件的例子吗?
覆盖NSResponder
方法-mouseUp:
并检查所提供事件的clickCount
。如果是clickCount == 2
,那么你看到的是一个双击。如果为1,则单击一次。0,然后他们在鼠标上下之间等待足够长的时间,系统认为这不是点击,只是不同的鼠标上下事件。
- (void)mouseUp:(NSEvent *)event
{
NSInteger clickCount = [event clickCount];
if (2 == clickCount) [self handleDoubleClickEvent:event];
}
假设处理点击的对象是响应链的一部分。如果没有,您将不得不以另一种方式获得事件,例如子类化NSApplication
或NSWindow
并重写-sendEvent:
以在适当的事件进一步传递之前拦截它。
参见NSEvent的-clickCount
方法
还要注意一些NSControl
具有setDoubleAction:
,以便通过setDoubleAction:
注册的选择器被发送到目标。参见
-
NSTableView
, -
NSStatusItem
, -
NSPathControl
, -
NSBrowser
, -
NSMatrix
.