Отображение баннера уведомлений на Mac с Swift - PullRequest
0 голосов
/ 29 августа 2018

Я попытался показать некоторые баннеры уведомлений в Mac OS со Swift. Но я получаю их только в центре уведомлений, а не как баннер.

У вас есть идея? Вот мой простой код:

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"
}

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

Вы не получите баннер, если ваше приложение находится на переднем плане.

Попробуйте использовать ...

notification.deliveryDate = Date(timeIntervalSinceNow: 5)
NSUserNotificationCenter.default.scheduleNotification(notification)

, а затем переключиться на другое приложение

0 голосов
/ 29 августа 2018

Если во время отправки уведомления приложение, отправляющее уведомление, будет сфокусировано, то уведомление не будет отображаться как баннер. Приложение может доставить баннерное уведомление, только если оно не активно на переднем плане.

Ваш код работает хорошо , когда ваше приложение не в фокусе , я только что проверил его.

Таким образом, поскольку вы отправляете уведомление по нажатию кнопки, приложение фокусируется при отправке уведомления: уведомление отправляется только в Центр уведомлений, оно не отображается как баннер.

Это правило, специально разработанное Apple.

...