設置了事件水龍頭後,我無法確定在給定CGEvent時按了哪個修飾鍵。獲取在CGEvent水龍頭中按下的修改鍵
CGEventFlags flagsP;
flagsP=CGEventGetFlags(event);
NSLog(@"flags: 0x%llX",flagsP);
NSLog(@"stored: 0x%llX",kCGEventFlagMaskCommand);
if (flagsP==kCGEventFlagMaskCommand) {
NSLog(@"command pressed");
}
鑑於上面的代碼片段,第一個NSLog從第二個NSLog返回一個不同的值。毫不奇怪,按下命令修飾鍵時從不觸發條件。
我需要確定命令,備用,選項,控制或換班是否按下給定的CGEvent。首先,我需要幫助來理解爲什麼上述不起作用。
謝謝!
謝謝彼得。這解釋得非常好,解決了我的問題。 – the979kid 2010-12-13 08:19:25
非常感謝,你是否知道是否有辦法檢查是否有修飾符被按下?或者我必須爲每個人明確檢查一下嗎? – 2013-12-04 23:29:02
我這樣做,但不知道它是最好的/最乾淨的方式? (BOOL isModifierPressed =(flags&(kCGEventFlagMaskAlternate | kCGEventFlagMaskCommand | kCGEventFlagMaskControl | kCGEventFlagMaskShift))> 0; ' – 2013-12-04 23:49:47