2012-03-30 1 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

グローバルホットキーを実装する別の方法はCarbonEvents.hで宣言されたRegisterEventHotKeyを使用しています。それのためのドキュメントは "遺産"の下にあるかもしれませんが、私がヘッダーから分かる限り、それは非推奨ではなく、64ビットコードで利用できます。