Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.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
Swift 当应用程序处于活动状态时显示NSUserNotification_Swift_Macos_Cocoa_Swift2_Nsusernotificationcenter - Fatal编程技术网

Swift 当应用程序处于活动状态时显示NSUserNotification

Swift 当应用程序处于活动状态时显示NSUserNotification,swift,macos,cocoa,swift2,nsusernotificationcenter,Swift,Macos,Cocoa,Swift2,Nsusernotificationcenter,我目前正在制作一个XIB菜单栏应用程序,该应用程序使用以下代码显示通知: func showNotification(message:String, title:String = "App Name") -> Void { let notification = NSUserNotification() notification.title = title notification.informativeText = message NSUserNotific

我目前正在制作一个XIB菜单栏应用程序,该应用程序使用以下代码显示通知:

func showNotification(message:String, title:String = "App Name") -> Void {
    let notification = NSUserNotification()
    notification.title = title
    notification.informativeText = message
    NSUserNotificationCenter.defaultUserNotificationCenter().deliverNotification(notification)
}
并这样称呼它:

showNotification("\(song)\n\(artist)",title: "Now Playing")
当菜单栏应用程序隐藏(未显示)时,通知会起作用,但是当用户显示它时,通知不会显示


应用程序在视图中时是否有显示通知的方法?

默认情况下,当应用程序处于活动状态时,不会显示应用程序发送的通知。要获得预期的行为,必须使用用户通知中心委托,如下所示:

extension AppController: NSUserNotificationCenterDelegate {

    private func setupUserNotificationCenter() {
        let nc = NSUserNotificationCenter.defaultUserNotificationCenter()
        nc.delegate = self
    }

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

FWIW:你的代码没有错,我刚刚在一个操场上测试过,效果不错。@Eric。那么为什么它在操场上工作(对我来说也是如此),而不是应用程序本身呢?applescript版本工作正常,这意味着逻辑太正确了?在这个函数中添加一个print语句——或者更好,创建一个断点——来检查它是否在你的应用程序中被调用。我想说的是,这个bug不是你问题中的代码,而是你应用程序中的其他地方。@EricD。逻辑工作正常,NSLog显示的“test”与它应该显示的一样do@EricD. 新问题,请看编辑