11

ユーザーが OS X Mountain Lion 通知センターを開いたことを検出するにはどうすればよいですか?

私が観察できる NSNotification (うーん、別のことを表す非常によく似た用語) はありますか?

4

1 に答える 1

0

公式に文書化された解決策や通知については知りません (教えてください!) が、アプリケーションがフォアグラウンドにある/最前面にある限り、テストしたときに (少なくとも 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が変更されたように見えます。

于 2015-04-17T17:21:48.100 に答える