我一直在搜索Apple文档,我能找到的关于双击的唯一功能只返回了点击之间的可接受时间,因为它被视为双击。
有人可以给我看一个双击事件的例子吗?
答案 0 :(得分:14)
覆盖NSResponder
方法-mouseUp:
并检查提供的事件clickCount
。如果是clickCount == 2
,那么您正在查看双击。如果是1,则单击一下。 0,然后他们在鼠标按下和鼠标按下之间等待了足够长的时间,系统认为它不是点击,只是向下然后向上发生事件。
- (void)mouseUp:(NSEvent *)event
{
NSInteger clickCount = [event clickCount];
if (2 == clickCount) [self handleDoubleClickEvent:event];
}
这假设处理点击的对象是响应者链的一部分。如果没有,您将不得不以另一种方式获取您的活动,例如继承NSApplication
或NSWindow
并覆盖-sendEvent:
以拦截相应的事件,然后再传递给它。
答案 1 :(得分:2)
请参阅NSEvent的-clickCount
方法。
答案 2 :(得分:2)
另请注意,某些NSControl
具有setDoubleAction:
,因此通过setDoubleAction:
注册的选择器会发送到目标。