应用程序处于活动状态时,Swift NSUserNotification不会显示

时间:2015-02-24 21:44:35

标签: swift osx-yosemite nsusernotification nsusernotificationcenter

我是OSX开发的新手,我正在创建一个应用程序,当有事情发生时会触发通知。但是当应用程序是关键应用程序时它没有显示通知,因为它是默认行为。即使应用程序是关键应用程序,我也想展示它们。 但是我只找到了用objective-c编写的这个问题的解决方案,但现在我正在使用Swift。我想知道如何用Swift实现它。

1 个答案:

答案 0 :(得分:11)

为确保始终显示通知,您需要为NSUserNotificationCenter设置委托并实施userNotificationCenter(center:shouldPresentNotification:) -> Booldocumentation表示此消息为

  

当用户通知中心决定不发送给代理时   提出通知。

您可以在您选择的任何类中实现委托。这是一个例子:

class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDelegate {

    func applicationDidFinishLaunching(aNotification: NSNotification) {
        NSUserNotificationCenter.defaultUserNotificationCenter().delegate = self
    }

    func userNotificationCenter(center: NSUserNotificationCenter, shouldPresentNotification notification: NSUserNotification) -> Bool {
        return true
    }