我正在尝试为我的应用程序使用新的Mountain Lion NSUserNotificationCenter(实际上并不太难)。发布通知,通过NSUserNotificationCenter关闭通知
NSUserNotification *userNotification = [[NSUserNotification alloc] init];
userNotification.title = @"Some title";
userNotification.informativeText = @"Some text";
[[NSUserNotificationCenter defaultUserNotificationCenter] deliverNotification:userNotification];
但是用得好好的,我要取消那些在屏幕上,一旦应用程序获得焦点的所有通知。例如。就像新的Messages应用程序一样。当在后台收到新消息时,会显示通知。当应用程序再次激活时,它们会自动消失并从屏幕和通知中心消失。
要复制这个,我已经注册了一个方法到NSApplicationDidBecomeActiveNotification
通知,它也被成功调用。在那里我叫[NSUserNotificationCenter defaultUserNotificationCenter] removeAllDeliveredNotifications]
。
但是,这样做的效果是,通知中心收集的通知将被删除,同时仍显示右上角显示的相应“泡泡”。
迭代所有交付的通知并将它们各自移除它们具有完全相同的效果,因为使用scheduleNotification
而不是deliverNotification
。
我是唯一一个遇到这种情况的人,还是我缺少一些以编程方式忽略通知屏幕部分和通知中心部分?
听起来像你应该报告这是http://bugreport.apple.com上的错误。 –
已经做到了。并不是说苹果公司的任何人都会真正阅读它们,但只是为了完成。不知道我是否在这里错过了一些东西,尽管这是我的错。 – BinaryBucks
在什么情况下你使用通知,你需要有'气泡'吗? –