如何隐藏macOS下NavigationSplitView的侧边栏切换按钮?
要实现类似邮件App无侧边栏切换按钮的效果,可通过以下两种方式处理:
方法一:替换默认侧边栏按钮为空白视图
在NavigationSplitView的内容列(中间列)的NavigationStack中,添加空的ToolbarItem占据导航栏左侧位置,覆盖系统默认的侧边栏切换按钮:
struct ContentView: View { @State private var selection: Int = 1 @State private var search: String = "" @State private var columnVisibility = NavigationSplitViewVisibility.all var body: some View { NavigationSplitView(columnVisibility: $columnVisibility) { Sidebar(selection: $selection) } content: { NavigationStack { Content(selection: $selection) .toolbar { ToolbarItem(placement: .navigationBarLeading) { EmptyView() } } } } detail: { DetailView(selection: $selection) } .searchable(text: $search) } }
该方法保留导航栏的其他功能,仅隐藏侧边栏切换按钮,符合邮件App的表现。
方法二:隐藏整个导航栏(按需使用)
如果你的场景不需要显示导航栏,可直接在内容列或详情列的NavigationStack中添加隐藏导航栏的修饰符:
// 在内容列中隐藏导航栏 NavigationStack { Content(selection: $selection) .navigationBarHidden(true) }
注意:此方法会完全隐藏导航栏,仅适用于不需要导航栏的场景。
内容的提问来源于stack exchange,提问作者Nhat Nguyen Duc
相关产品推荐
相关产品推荐

