SwiftUI 中隐藏侧边栏按钮的位置

问题描述 投票:0回答:1

我在查看 Apple 设计资源时看到了一个如下所示的工具栏:

隐藏侧边栏按钮位于侧边栏内。然而,使用 SwiftUI,我无法找到如何始终将其放置在这里而不是放在交通灯按钮旁边。我可以在标题之前添加一个额外的侧边栏按钮,但我无法通过交通灯按钮删除第一个侧边栏按钮。

有什么办法可以改变这个按钮的位置吗? 谢谢

macos swiftui toolbar
1个回答
0
投票

您可以使用

NavigationSplitView
删除
.toolbar(removing: .sidebarToggle)
的标准侧边栏按钮,然后添加您自己的自定义按钮。

struct ContentView: View {
    var body: some View {
        NavigationSplitView {
            Text("Main Content")
                .toolbar(removing: .sidebarToggle)
        } detail: {
            Text("Sidebar")
        }
        .toolbar {
            ToolbarItem(placement: .navigation) {
                SidebarButton()
            }
        }
    }
}


struct SidebarButton: View {
    var body: some View {
        Button(action: toggleSidebar, label: {
            Image(systemName: "sidebar.leading")
        })
    }
    
    private func toggleSidebar() {
#if os(macOS)
        NSApp.keyWindow?.firstResponder?.tryToPerform(#selector(NSSplitViewController.toggleSidebar(_:)), with: nil)
#endif
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.