2016-03-01 50 views
0

我需要檢查shift鍵的狀態,當它按住或不按住時,我會做不同的事情。如何獲得換檔鍵的狀態?

- (void)flagsChanged:(NSEvent *)theEvent 

[NSEvent addLocalMonitorForEventsMatchingMask:NSFlagsChangedMask 

             handler:^NSEvent *(NSEvent * event) 

我更願意使用顯示器之一,但我只能拿到鑰匙關閉事件,我怎麼能知道,如果shift鍵持有下?

我的主要想法是聲明一個布爾,當按下鍵時,將布爾分配給YES,當鍵入時,將BOOL分配給NO。

但是我無法獲得關鍵事件,是否有人知道如何獲得關鍵事件,有什麼更好的,如果你有更好的想法,請幫助我謝謝。

回答

2

您可能會看到如何MASShortcut項目在https://github.com/shpakovski/MASShortcut/blob/master/Framework/MASShortcutView.m

編輯

NSEventMask eventMaskDown = (NSKeyDownMask | NSFlagsChangedMask); 
    eventMonitorDown = [NSEvent addLocalMonitorForEventsMatchingMask:eventMaskDown handler:^(NSEvent *event) { 
     // The event object contains the key that was pressed 
    } 

    NSEventMask eventMaskUp = (NSKeyUpMask | NSFlagsChangedMask); 
    eventMonitorUp = [NSEvent addLocalMonitorForEventsMatchingMask:eventMaskUp handler:^(NSEvent *event) { 
     // The event object contains the key that was released 
    } 

處理大約線400這一問題對蘋果公司的網站了解更多信息,請參見Modifier flags

+0

對不起,我想獲得shift key up事件的回調,並且我沒有在鏈接中找到答案,謝謝你們一切。 – melody5417

+0

我編輯了我的答案,使其更加準確。 – Xvolks

+0

真的很感謝,但是我怎麼能從關鍵事件中辨別出關鍵事件。我知道shift鍵和shift鍵都會調用它,但我想區分它們,因爲鍵和鍵都會做不同的事情。抱歉我的英語不好,希望你能抓住我想表達的意思。 – melody5417

相關問題