3

根据OS X Mountain Lion 发行说明

“用户对显示的通知和样式(横幅、警报等)具有最终控制权。没有任何机制可以覆盖用户偏好。”

即使我想做的只是从警报样式“降级”为横幅样式……很好。但是我至少可以在 didActivateNotification 方法中找出通知是警报还是横幅样式?

当警报是横幅(这是我想要的)时,单击其内容是唯一可能的操作,这都会触发具有 notification.activationType 值的 didActivateNotification 方法NSUserNotificationActivationTypeContentsClicked并关闭通知横幅。我希望我的应用通过打开 Internet URL 来响应此操作。

当用户选择alert风格的通知时,点击alert的内容也会生成didActivateNotification,其值相同notification.activationType,但它停留在屏幕上而不是消失(它只在按下Action按钮时消失,并且notification.activationType有不同的那么值)。我不希望我的应用程序为同一个警报通知重复触发操作,以防用户单击警报通知的内容区域。

另一种解决方案是在用户单击其内容时强制警报通知气泡消失。这可能吗?

4

1 回答 1

0

您可以使用以下方法删除通知:

[[NSUserNotificationCenter defaultUserNotificationCenter] removeDeliveredNotification:notification];
于 2016-01-19T11:59:44.337 回答