我正在尝试将新的 Mountain Lion NSUserNotificationCenter 用于我的应用程序(实际上并不太难)。发布通知就像一个魅力通过
NSUserNotification *userNotification = [[NSUserNotification alloc] init];
userNotification.title = @"Some title";
userNotification.informativeText = @"Some text";
[[NSUserNotificationCenter defaultUserNotificationCenter] deliverNotification:userNotification];
但是,一旦应用程序获得焦点,我想关闭屏幕上的所有通知。例如,就像新的消息应用程序那样。在后台收到新消息时,会显示通知。当应用再次激活时,它们会自动关闭并从屏幕和通知中心消失。
为了复制这一点,我在NSApplicationDidBecomeActiveNotification
通知中注册了一个方法,该方法也被成功调用。我在那里打电话[NSUserNotificationCenter defaultUserNotificationCenter] removeAllDeliveredNotifications]
。
但是,这会导致已在通知中心收集的通知被删除,而右上角显示的相应“气泡”仍会显示。
迭代所有传递的通知并单独删除它们具有完全相同的效果,就像 usingscheduleNotification
而不是deliverNotification
.
我是唯一一个遇到这种情况的人,还是我错过了以编程方式关闭通知的屏幕部分和通知中心部分的东西?