使用 addGlobalMonitorForEventsMatchingMask,我可以检查是否按下了按键。当事件被触发时,我可以检查修饰符标志以查看是否结合使用了任何修饰符。
但我需要知道是否在没有按下另一个键的情况下按下了修饰符。
我该怎么做?
最佳答案
您正在查找 kCGEventFlagsChanged
类型的事件:
CGEventMask eventMask = (1 << kCGEventFlagsChanged);
CFMachPortRef eventTap = CGEventTapCreate(kCGHIDEventTap, kCGHeadInsertEventTap, kCGEventTapOptionDefault, eventMask, cgEventCallback, NULL);
...
CGEventRef cgEventCallback(CGEventTapProxy proxy, CGEventType type, CGEventRef cgEvent, void *refcon)
{
NSEvent *event = [NSEvent eventWithCGEvent:cgEvent];
if (event.type == kCGEventFlagsChanged) {
NSLog(@"modifier key!");
}
}
关于macos - cocoa 全局监视修改键按下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18501955/