在macOS上的SwiftUI导航视图中切换侧栏。

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

我有一个macOS应用程序,它有一个 NavigationView 并希望在窗口的工具栏中设置默认的ToggleSidebar项。

目前我将ToolbarItem的目标设置为AppDelegate中的 toolbarWillAddItem(_)NSToolbarDelegate.

在AppDelegate内部,我实现了

@objc func toggleSidebar(_ sender: Any) {
    ((window.contentView?.subviews.first?.subviews.first?.subviews.first as? NSSplitView)?.delegate as? NSSplitViewController)?.toggleSidebar(self)
}

这个解决方案现在是有效的。如果SwiftUI的实现会改变,这个就会中断。

那么如何用更好的方式来实现呢?

swift macos swiftui appkit
1个回答
0
投票

我不使用NavigationView。使用HSplitView来代替,并使用一个隐藏的标志,比如在 https:/stackoverflow.coma59228385811010

© www.soinside.com 2019 - 2024. All rights reserved.