如何检测用户何时打开 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 似乎发生了变化。