ユーザーが OS X Mountain Lion 通知センターを開いたことを検出するにはどうすればよいですか?
私が観察できる NSNotification (うーん、別のことを表す非常によく似た用語) はありますか?
公式に文書化された解決策や通知については知りません (教えてください!) が、アプリケーションがフォアグラウンドにある/最前面にある限り、テストしたときに (少なくとも OS X 10.10 では) 動作するように見えました。ウィンドウ私は信じています。
オブジェクトをオブザーバーとして追加します。
[[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@selector(notificationCenterOpened:) name:@"com.apple.HIToolbox.beginMenuTrackingNotification" object:nil];
[[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@selector(notificationCenterClosed:) name:@"com.apple.HIToolbox.endMenuTrackingNotification" object:nil];
ToolboxMessageEventData
次のようなメソッドをオブジェクトに追加し、正しい番号 ( 4927
)を確認してください。次に例を示します。
- (void)notificationCenterOpened:(NSNotification*)notification {
if ([notification.userInfo[@"ToolboxMessageEventData"] isEqual: @4927]) {
NSLog(@"Notification center opened");
}
}
- (void)notificationCenterClosed:(NSNotification*)notification {
if ([notification.userInfo[@"ToolboxMessageEventData"] isEqual: @4927]) {
NSLog(@"Notification center closed");
}
}
それがうまくいくかうまくいかないか教えてください。
気にしないでください-再起動/ログオフ+再度ログインすると、ToolboxMessageEventDataが変更されたように見えます。