使用addGlobalMonitorForEventsMatchingMask,我可以检查按键是否被按下。当一个事件被触发时,我可以检查修饰符标志,以查看是否有任何修饰符被联合使用。
但我需要知道是否按下了一个修饰键而没有按下另一个键。
我该怎么做呢?
发布于 2013-11-08 10:12:34
您正在查找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!");
}
}https://stackoverflow.com/questions/18501955
复制相似问题