根据苹果文档https://developer.apple.com/reference/foundation/nsusernotification/1416410-identifier
NSUserNotification有一个名为identifier的属性,当标识符与另一个通知相同时,可以替换通知。
当我测试此功能时,似乎通知并未真正替换,只是没有发送。
如果通知中心只有一种类型的通知,但最新的通知被更新到顶部,我将如何实现这种效果?
发送通知A +通知B +通知A延迟1分钟
这是mac通知中心显示的内容
没有标识符
NotificationA (now)
NotificationB (1 minute ago)
NotificationA (2 minute ago)
带标识符
NotificationB (1 minute ago)
NotificationA (2 minute ago)
注意由于标识符存在而未调用通知A(第2次)
期望效果
NotificationA (now)
NotificationB (1 minute ago)
在这种情况下,通知A再次发送,之前的通知A消失
答案 0 :(得分:2)
您可以使用notification
NSNotificationCenter
方法删除现有的removeDeliveredNotification:
。
只需删除并重新添加您的通知即可。
<强>目标C 强>
[[NSUserNotificationCenter defaultUserNotificationCenter] removeDeliveredNotification:userNotification];
[[NSUserNotificationCenter defaultUserNotificationCenter] deliverNotification:userNotification];
<强>夫特强>
NSUserNotificationCenter.default.removeDeliveredNotification(userNotification)
NSUserNotificationCenter.default.deliver(userNotification)
我成功使用此技术显示通知而不会污染通知中心。