Swift 当应用程序处于活动状态时显示NSUserNotification
我目前正在制作一个XIB菜单栏应用程序,该应用程序使用以下代码显示通知: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
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. 新问题,请看编辑