背景
我正在 Catalina 上的 Xcode 12.4 中的 SwiftUI 中开发 MacOS 应用程序。现在,我的应用程序有一个带有图块的登陆页面,每个图块都包含一个使用工作表显示的功能。
ForEach(MenuItem.allCases) { menuItem in
Button(action: {
detailView = menuItem
}) {
Tile(labelText: menuItem.menuText, icon: menuItem.menuIcon)
.sheet(item: $detailView) { item in
FeatureView(dismissFeatureView: { self.detailView = nil }, menuItem: item)
.environmentObject(container)
.background(Color("backgroundMain"))
}
}
}
Run Code Online (Sandbox Code Playgroud)
窗口具有最小宽度和高度,但由于没有最大高度或宽度,因此可以扩展。我正在寻找一种方法使工作表占据整个屏幕。在 iOS 上您可以使用.fullScreenCover(),但在 MacOS 上不可用。所以现在,当我放大屏幕并单击图块时,工作表视图不会占用整个空间。
此外,用户还可以将工作表的大小调整到超出窗口的大小,如此处所示。
问题
如何使工作表视图与窗口的大小(没有最大宽度或高度)相匹配,以便用户仍然可以调整窗口大小,但确保工作表始终占据整个窗口。
swiftui ×1