Big Sur上的SwiftUI 2.0如何禁用工作表的大小调整

问题描述

我在Mac OS上有一个项目,该项目大量使用工作表来显示数据,但是在工作表上设置fixedSize并不能阻止其调整大小。

有人知道如何在Catalina和SwiftUI 2.0上获得不改变图纸尺寸的方法吗?

这又是针对Mac OS BigSur。

struct SheetView:View {
    var body: some View {
        Text("hello world")
    }
}

struct ContentView: View {
    @State var opened: Bool = false

    var body: some View {
        Button("Open sheet") {
            opened.toggle()
        }
        .padding()
        .sheet(isPresented: $opened) {
            SheetView()
                .frame(width: 100,height: 100)
        }
    }
}

解决方法

为工作表视图提供显式框架,如下所示

  .sheet(isPresented: self.$showSheetView) {
        SheetView()
            .frame(width: 400,height: 300)     // << this !!
    }