2012-08-24 26 views
2

我在我的應用程序中實現了- (void)flagsChanged:(NSEvent *)theEvent方法。當我按住[alt]鍵時,它工作正常。該方法只在鍵被按下時發送,但當我再次放開時不會發送。 - (void)keyUp:(NSEvent *)theEvent將不會被調用。無論如何看到[alt]鍵被釋放了嗎?是否有一個KeyUp:方法flagsChanged:?

下面是代碼:

- (void)flagsChanged:(NSEvent *)theEvent 
{ 
    if([theEvent modifierFlags] & NSAlternateKeyMask) 
    { 
     NSLog(@"alt is down!!!"); 
    } 
} 
+0

您應該看到'-flagsChanged:'用於修飾鍵上的按鍵事件和按鍵事件。告訴我們你的代碼。 –

+0

好的。我添加了代碼 – Silicone

回答

3

好。我真的需要更多地測試代碼。記錄NSEvent後,我注意到keyUp方法已經實現(感謝Jonathan Grynspan在註釋中指出)。

所以現在我的代碼是:

- (void)flagsChanged:(NSEvent *)theEvent 
{ 
    if([theEvent modifierFlags] & NSAlternateKeyMask) 
    { 
     NSLog(@"alt is down!!!"); 
    } 
    else if([theEvent keyCode] == 58) 
    { 
     NSLog(@"alt is up!!!"); 
    } 
} 

現在這工作得很好!

相關問題