Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何在运行时发现NSUserNotification的样式?还是强制关闭警报?_Objective C_Cocoa_Osx Mountain Lion_Notificationcenter_Nsusernotification - Fatal编程技术网

Objective c 如何在运行时发现NSUserNotification的样式?还是强制关闭警报?

Objective c 如何在运行时发现NSUserNotification的样式?还是强制关闭警报?,objective-c,cocoa,osx-mountain-lion,notificationcenter,nsusernotification,Objective C,Cocoa,Osx Mountain Lion,Notificationcenter,Nsusernotification,根据: 用户对显示的通知和样式(横幅、警报等)有最终控制权。没有覆盖用户首选项的机制 即使我想做的只是从警告样式“降级”到横幅样式。。。好的但我至少可以找出didActivateNotification方法中的通知是警报式还是横幅式的吗? 当警报是一个横幅(这是我想要的)时,单击其内容是唯一可能的操作,这两种操作都会触发带有通知的didActivateNotification方法。activationType值NSUserNotificationActivationTypeContentsCli

根据:

用户对显示的通知和样式(横幅、警报等)有最终控制权。没有覆盖用户首选项的机制

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

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

当用户选择警报样式通知时,单击警报内容也会生成具有相同值
notification.activationType
的DidActivationNotification,但它不会消失,而是停留在屏幕上(仅在按下操作按钮时才会消失,而notification.activationType则具有不同的值)。我不希望我的应用程序重复触发同一警报通知的操作,以防用户单击警报通知的内容区域


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

您可以通过以下操作删除通知:

[[NSUserNotificationCenter defaultUserNotificationCenter] removeDeliveredNotification:notification];