gpt4 book ai didi

objective-c - Objective C - 如何使用 NSUserNotification 标识符属性

转载 作者:行者123 更新时间:2023-12-03 17:01:50 25 4
gpt4 key购买 nike

根据苹果文档https://developer.apple.com/reference/foundation/nsusernotification/1416410-identifier

NSUserNotification 有一个名为“标识符”的属性,当标识符与另一个通知相同时,该属性将替换通知。

当我测试此功能时,但似乎通知并没有真正被替换,只是没有发送。

如何实现通知中心只有一种通知,但最新调用的通知更新到顶部的效果?

延迟 1 分钟发送通知 A + 通知 B + 通知 A

这是 Mac 通知中心显示的内容

没有标识符

NotificationA (now) 
NotificationB (1 minute ago)
NotificationA (2 minute ago)

带有标识符

NotificationB (1 minute ago) 
NotificationA (2 minute ago)

请注意,由于存在标识符,通知 A(第二次)不会被调用

所需效果

NotificationA (now) 
NotificationB (1 minute ago)

在这种情况下,通知A再次发送,之前的通知A消失了

最佳答案

您可以使用 NSNotificationCenterremoveDeliveredNotification: 方法删除现有的通知。只需删除并重新添加您的通知即可。

Objective-C

[[NSUserNotificationCenter defaultUserNotificationCenter] removeDeliveredNotification:userNotification];
[[NSUserNotificationCenter defaultUserNotificationCenter] deliverNotification:userNotification];

swift

NSUserNotificationCenter.default.removeDeliveredNotification(userNotification)
NSUserNotificationCenter.default.deliver(userNotification)

我成功地使用这种技术来显示通知,而不会污染通知中心。

关于objective-c - Objective C - 如何使用 NSUserNotification 标识符属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38465355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com