SwiftUI: как программно закрыть contextMenu

Есть ли способ отклонить программно?

Я бы хотел contextMenu (вызывается перед переходом в фоновый режим) для автоматического закрытия, когда приложение возвращается на передний план.

ContentView

      struct ContentView: View {
var body: some View {
    Text("Menu")
        .contextMenu {
            Button("Button", action: { print("button tapped") })
        }
        .onReceive(
            NotificationCenter.default.publisher(for: NSNotification.Name("dismissContextMenu"))
        ) { _ in
            print("dismiss context menu")
        }
}

Уведомление размещено в SceneDelegate:

      func sceneWillEnterForeground(_ scene: UIScene) {
    NotificationCenter.default.post(
        name: NSNotification.Name("dismissContextMenu"),
        object: nil
    )
}

Я пробовал добавить .id(viewId) и обновил viewId, но это не сработало.

Спасибо

0 ответов

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