首页 > 解决方案 > 在 Mac Catalyst 上关闭“.sheet”的手势

问题描述

.sheet在 SwiftUI 上使用修饰符时,我得到的行为是无法在 Mac(Catalyst)上使用向下滑动手势关闭显示的工作表,这是预期的,因为 ... Mac 没有触摸屏。这导致必须添加许多#if targetEnvironment(macCatalyst) ... #endif来添加按钮来关闭工作表:

struct ContentView: View {
    @State private var showSheet = false

    var body: some View {
        VStack {
            Button("Show dialog") {
                showSheet = true
            }
        }.sheet(isPresented: $showSheet) {
            VStack {
                Text("Dialog").font(.title)
#if targetEnvironment(macCatalyst)
                Button("Close", action: { showSheet = false })
#endif
                Spacer()
            }.padding(10)
        }
    }
}

有更好的解决方案吗?

标签: iosswiftswiftuimac-catalyst

解决方案


推荐阅读