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, но это не сработало.
Спасибо