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

Tom*_*muu 3 nsusernotification nsusernotificationcenter swift osx-yosemite

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

sbo*_*oth 11

为确保始终显示通知,您需要为其设置NSUserNotificationCenter和实施委托userNotificationCenter(center:shouldPresentNotification:) -> Bool.该文件说,这个消息是

当用户通知中心决定不显示您的通知时发送给代理人.

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

class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDelegate {

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

    func userNotificationCenter(center: NSUserNotificationCenter, shouldPresentNotification notification: NSUserNotification) -> Bool {
        return true
    }
Run Code Online (Sandbox Code Playgroud)