2012-03-30 20 views
0

我創建這個代碼中的全局快捷鍵:全球快捷的工作,但系統播放聲音的錯誤

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { 

    [NSEvent addGlobalMonitorForEventsMatchingMask:NSKeyDownMask handler:^(NSEvent * theEvent) { 

     int modiferKeys = NSControlKeyMask | NSAlternateKeyMask; 

      if (([theEvent keyCode] == 7 && modiferKeys)) { 
       NSLog (@"%@",@"work"); 
      } 
     }]; 
} 

此代碼工作完美,但在一些應用程序中有一個焦點(例如Xcode的,AppStore的...)系統播放錯誤聲音。 如何解決它? Thaks。

回答

1

實現全局熱鍵的另一種方法是使用RegisterEventHotKey,在CarbonEvents.h中聲明。文檔可能在「遺留」之下,但據我可以從頭文件可以看出,它不被棄用,並且可用於64位代碼。