我试图在使用Swift的Mac OS上显示一些通知横幅。但是我只能在通知中心获得它们,而不是横幅。
您有个主意吗?这是我的简单代码:
func showNotification() -> Void {
let notification = NSUserNotification()
notification.title = "Title of notification"
notification.subtitle = "Subtitle of notification"
notification.soundName = NSUserNotificationDefaultSoundName
NSUserNotificationCenter.default.deliver(notification)
}
@IBAction func btnPressed(_ sender: NSButton) {
showNotification()
testLbl.stringValue = "Button was pressed"
}
答案 0 :(得分:1)
如果在发送通知时,发送通知的应用程序处于焦点状态,则通知将不会显示为横幅。如果应用程序在前台未处于活动状态,则该应用程序只能传递横幅通知。
您的代码效果很好当您的应用不是主要关注对象时,我已经对其进行了测试。
因此,由于您单击按钮后发送通知,因此发送通知时应用程序将处于焦点状态:通知仅转到通知中心,而不会显示为横幅。
这是Apple故意制定的规则。
答案 1 :(得分:0)
如果您的应用程序位于前台,则不会显示横幅。
尝试使用…
notification.deliveryDate = Date(timeIntervalSinceNow: 5)
NSUserNotificationCenter.default.scheduleNotification(notification)
然后切换到另一个应用