我正在尝试捕获OS X Yosemite上的鼠标点击次数。
根据我的阅读,这段代码应该有效:
[NSEvent addGlobalMonitorForEventsMatchingMask:NSOtherMouseDown
handler:^(NSEvent *event) {
NSLog(@"Mouse Down, Button: %ld", event.buttonNumber);
}];
但是,它仅适用于鼠标右键的事件,而不适用于其他按钮(即多按钮鼠标上的按钮4,5,6等)。
使用Quartz事件抽头我能够检测到这些按钮上的鼠标点击,如下所示:
CGEventTapCreate(kCGSessionEventTap,
kCGHeadInsertEventTap,
0,
CGEventMaskBit(kCGEventOtherMouseUp) | CGEventMaskBit(kCGEventOtherMouseDown),
MouseEventCallback,
NULL);
但我更喜欢使用NSEvent API,因为它更直接。
有关如何使用NSEvent捕获其他鼠标按钮事件的任何想法?
答案 0 :(得分:1)
你的问题可能只是一个错字?但是你的代码缺少NSEventMaskFromType,例如:
[NSEvent addGlobalMonitorForEventsMatchingMask:NSEventMaskFromType(NSOtherMouseDown) ..
^^^^^^^^^^^^^^^^^^^