Нажмите UINotification на Mac, не открывая окно.
Я разрабатываю приложение строки состояния для Mac, и у меня есть локальные уведомления. Когда я нажимаю на одно из этих уведомлений, я хочу, чтобы мое приложение строки состояния появлялось и реагировало на содержимое уведомления (что само по себе работает нормально).
К сожалению, всякий раз, когда я нажимаю одно из уведомлений, появляется моя (первая?) WindowGroup. Это не исходит от
@main
struct sportnewsApp: App {
@NSApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
var body: some Scene {
// pops up, after every opening any notification
WindowGroup {
Text("I should never be visible, except for a specific URI link")
}
.handlesExternalEvents(matching: "theOnlyLinkThatOpensThisWindow/"
}
}
Мой код уведомления очень простой, но просто для справки:
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
if statusBar != nil {
DispatchQueue.main.async {
self.statusBar?.newsToPush = response.notification.request.content.userInfo["id"] as? String ?? nil
self.statusBar?.showNews(sender: self.statusBar!.newsButton)
}
}
}
Мне нужно сохранить WindowGroup, так как мне нужно показывать ее в очень специфических случаях. Как я могу предотвратить его появление, когда я нажимаю любое уведомление?
К сожалению, мой опыт работы с Swift/SwiftUI на Mac ограничен, поэтому я не совсем уверен, где я мог бы это изучить. Надеюсь на полезные идеи.