当应用程序没有焦点时,NSUserNotificationCenter委托不起作用

时间:2013-12-30 17:34:36

标签: macos cocoa nsusernotificationcenter

我有这样的代码。

[[NSUserNotificationCenter defaultUserNotificationCenter] deliverNotification:notification];
[[NSUserNotificationCenter defaultUserNotificationCenter] setDelegate:self];

另外,我实现了userNotificationCenter:shouldPresentNotification:。它工作正常。然而。当应用程序窗口未聚焦时,不会调用此委托方法,并且通知始终存在。

任何帮助?

1 个答案:

答案 0 :(得分:2)

首先,您应该在发送-deliverNotification:消息之前设置委托。如果你不这样做,你的委托方法可能不会被触发,即使它应该被触发。

其次,在documentation for -userNotificationCenter:shouldPresentNotification:中,它声明:

  

userNotificationCenter:shouldPresentNotification:

     

当用户通知中心决定不提供您的通知时发送给代理人。

即。当NSUserNotificationCenter已经决定显示您的通知时,您将看到此方法被调用。如果它确定应该显示它,它就不会打扰。