Нажмите 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 ограничен, поэтому я не совсем уверен, где я мог бы это изучить. Надеюсь на полезные идеи.

0 ответов

Другие вопросы по тегам