1
addGlobalMonitorForEventsMatchingMask를 사용하여 키가 눌려 있는지 확인할 수 있습니다. 그리고 이벤트가 시작되면 수정 자 플래그를 검사하여 수정자를 함께 사용했는지 확인할 수 있습니다.수정 자 키 누르기를위한 코코아 글로벌 시계
하지만 다른 키를 누르지 않고 수정자가 눌려 졌는지 알아야합니다.
어떻게하면됩니까?
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!");
}
}
콜백에서'CGEventGetType'을 사용하여'NSEvent'로 변환하기 전에 이벤트 유형을 검사 할 수 있습니다. – JWWalker
당신은 addGlobalMonitorForEventsMatchingMask'에'NSFlagsChangedMask'을 전달하려고 했'? – JWWalker