2013-01-24 80 views
1

我試圖檢測命令鍵是否被按下,並且對於我的生活無法弄清楚以下的錯誤。我已經覆蓋期爲用戶提供下面的代碼:NSEvent commandKey not detected

- (void)flagsChanged:(NSEvent *)theEvent { 

    NSLog(@"flags changed in %@", self); 
    BOOL commandKeyPressed = ([theEvent modifierFlags] & NSCommandKeyMask); 

    if (commandKeyPressed) 
     NSLog(@"command key in %@", self); 
} 

我看到「標誌改爲」消息時,我按下命令鍵,而不是消息的「命令鍵」。我錯過了什麼?

回答

1

一個BOOLsigned char,所以當你轉換的intBOOL,你砍掉所有,但低8位。在你的情況下,非零位不在低8位。相反,說

BOOL commandKeyPressed = ([theEvent modifierFlags] & NSCommandKeyMask) != 0; 

或只是

if ([theEvent modifierFlags] & NSCommandKeyMask) 
相關問題