我想NavigationSplitView
在 macOS 上隐藏/显示 a 的详细信息拆分视图。
不过NavigationSplitViewVisibility
似乎没有这样的选择。更改.navigationSplitViewColumnWidth()
或.frame()
对详细信息视图没有影响,尽管它适用于内容和列表视图。
NavigationSplitView {
List(selection: $selection)
} content: {
content(for: selection)
} detail: {
Text("Detail")
}
Run Code Online (Sandbox Code Playgroud)
苹果是否忘记实现这样的功能?:/
试图为自己找出同一问题的答案,我得出了这样的结论:
ANavigationSplitView
旨在显示一个层次结构,其中每个下一个级别(侧边栏、内容、详细信息)都是前一个级别的子级别。在这样的结构中,您可能总是希望显示详细视图,即使它是空的。
在任何情况下,即使这不是逻辑,使“详细”部分隐藏的方法是通过实现两列导航并添加NavigationSplitView
a DetailView
,将所有这些包含在 an 中HStack
并使DetailView
可见性成为有条件的:
struct MyView: View {
@State var showingDetail: Bool = true
var body: some View {
HStack {
NavigationSplitView {
SidebarView()
} detail: {
ContentView()
}
if showingDetail {
DetailView()
}
}
.toolbar {
Toggle(isOn: $showingDetail) {
Image(systemName: "sidebar.trailing")
}
.toggleStyle(.button)
}
}
Run Code Online (Sandbox Code Playgroud)
}
归档时间: |
|
查看次数: |
1722 次 |
最近记录: |