NSUserNotificationCenter dismiss notification

后端 未结 3 1129
逝去的感伤
逝去的感伤 2020-12-31 01:29

I\'m trying to use the new Mountain Lion NSUserNotificationCenter for my application (which isn\'t too hard actually). Posting notifications works like a charm via

相关标签:
3条回答
  • 2020-12-31 01:47

    The Messages app is probably using the private NSUserNotificationCenter _removeAllDisplayedNotifications or _removeDisplayedNotification: method.

    You can try to use these methods to test if this is what you are looking for. Just add this category interface to declare the methods:

    @interface NSUserNotificationCenter (Private)
    - (void)_removeAllDisplayedNotifications;
    - (void)_removeDisplayedNotification:(NSUserNotification *)notification;
    @end
    

    Unfortunately, since these are undocumented methods, you can not use them in an app distributed through the App Store. If this is indeed what you are looking for, then you should file a bug and ask for these methods to become part of the public API.

    0 讨论(0)
  • 2020-12-31 01:55

    As of 10.9, the following methods remove any displayed notifications:

    // Clear a delivered notification from the notification center. If the 
    // notification is not in the delivered list, nothing happens.
    - (void)removeDeliveredNotification:(NSUserNotification *)notification;
    
    // Clear all delivered notifications for this application from the 
    // notification center.
    - (void)removeAllDeliveredNotifications;
    

    The behavior seems to have changed since 10.8, as any displayed notifications are removed as well when these methods are called (thanks @0xced for clarification).

    0 讨论(0)
  • 2020-12-31 02:00

    removeDeliveredNotification is removing the displayed notification for me (on 10.11), the caveat being the identifier on the notification must be set.

    0 讨论(0)
提交回复
热议问题