アプリケーションに新しいMountainLionNSUserNotificationCenterを使用しようとしています(実際にはそれほど難しくありません)。通知の投稿は、
NSUserNotification *userNotification = [[NSUserNotification alloc] init];
userNotification.title = @"Some title";
userNotification.informativeText = @"Some text";
[[NSUserNotificationCenter defaultUserNotificationCenter] deliverNotification:userNotification];
ただし、アプリがフォーカスを取得したら、画面に表示されているすべての通知を閉じたいと思います。たとえば、新しいメッセージアプリがそれを行うように。新しいメッセージがバックグラウンドで受信されると、通知が表示されます。アプリが再びアクティブになると、これらは自動的に閉じられ、画面と通知センターから消えます。
これを複製するために、NSApplicationDidBecomeActiveNotification
通知にメソッドを登録しました。これも正常に呼び出されます。そこで私は電話します[NSUserNotificationCenter defaultUserNotificationCenter] removeAllDeliveredNotifications]
。
ただし、これには、通知センターで収集された通知が削除され、右上隅に表示されている対応する「バブル」が引き続き表示されるという効果があります。
配信されたすべての通知を繰り返し、それぞれを削除すると、のscheduleNotification
代わりにを使用した場合とまったく同じ効果がありdeliverNotification
ます。
これを経験しているのは私だけですか、それとも通知の画面上の部分と通知センターの部分をプログラムで却下するための何かが欠けていますか?