12
ユーザがOS X Mountain Lion Notification Centerを開いたときを検出するにはどうすればよいですか?ユーザがOS X通知センターを開いたときを検出する方法は?
私は観察することができるNSNotification(ugh、非常に似た言葉は別のもの)ですか?
ユーザがOS X Mountain Lion Notification Centerを開いたときを検出するにはどうすればよいですか?ユーザがOS X通知センターを開いたときを検出する方法は?
私は観察することができるNSNotification(ugh、非常に似た言葉は別のもの)ですか?
正式に文書化された解決策や通知(私に教えてください)はわかりませんが、テストしたときには(少なくとも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");
}
}
それがあなたのために働くかどうか私に教えてください。
Nevermind - 再起動/ログオフ+ログイン時に、ToolboxMessageEventDataが変更されるように見えます。
私はこれが '[[NSScreen mainScreen] visibleFrame]'をチェックすることで実現できると考えていましたが、これは通知センターの引き出し(OS X 10.9)には調整されていないようです。 – pkamb
あなたはこれに対する解決策を見つけましたか? – WCByrne