我是Swift的新手,我一直在尝试开发一个应用程序,边开发边学习。我有一个NavigationView,它将List作为侧边栏,在用户点击时呈现内容。用户可以抓取这两个窗格之间的栏来调整大小。这似乎是NavigationView的默认行为。我正在试图找到一种方法来禁用它,因为我不希望用户调整侧边栏的大小。
struct Sidebar: View {
var body: some view {
List {
NavigationLink("First section", destination: FirstSection)
}
.frame(minWidth: 150, maxWidth: 150)
}
}
我也找不到一种方法来告诉Swift我希望我的List视图有一个适合内容的动态宽度,就像CSSwidth: fit-content;
一样
在下面的图片中,你可以看到我可以将侧边栏的大小调整到屏幕的一半。如何禁用这个行为?
2条答案
按热度按时间gpfsuwkq1#
我确实找到了一个解决方案,你所要做的就是设置目标宽度,这样侧边栏就不能调整到目标视图的大小,例如##考虑将firstSection()作为视图##
此处为应用程序主界面
此处为侧边栏和导航视图
35g0bw712#
我能够以一种奇怪的方式做到这一点,第一件事是创建一个NSViewControllerRepresentable,这样我就能够 Package 一个NSViewController,在其中生成一个1X1方形视图,因为NSViewController具有完整的生命周期,我能够在viewDidDisappere()中编写代码并切换回侧边栏