提问人:edu 提问时间:11/12/2023 最后编辑:edu 更新时间:11/12/2023 访问量:21
NavigationSplitView 的侧边栏切换按钮在显示侧边栏时暂时消失
NavigationSplitView's sidebarToggle button temporarily disappear when showing sidebar
问:
我有一个简单的 macOS,面向 macOS 13.0,它显示一个带有侧边栏和详细信息的 NavigationSplitView。 侧边栏切换按钮按预期工作,除非侧边栏被隐藏并且我按下它以显示侧边栏。它会暂时消失,并在视图中导致一些故障。 这是我到目前为止编写的代码。
import SwiftUI
@main
struct SomeApp: App
{
var body: some Scene
{
WindowGroup
{
MainScreen()
.frame(minHeight: 450)
.frame(width: 720)
.presentedWindowToolbarStyle(.unified)
.navigationTitle("SomeApp")
}
.windowResizability(.contentSize)
}
}
enum MenuItem: Identifiable, Hashable
{
case readme
case about
var id: String
{
title
}
var title: String
{
switch self
{
case .readme: "Readme"
case .about: "About"
}
}
var symbolName: String
{
switch self
{
case .readme: "newspaper.circle.fill"
case .about: "info.circle.fill"
}
}
}
struct MainScreen: View
{
@State var menuItems: [MenuItem]
@State var selectedMenuItem: MenuItem
init()
{
selectedMenuItem = .readme
menuItems = [
.readme,
.about
]
}
var body: some View
{
NavigationSplitView
{
List(
menuItems,
selection: $selectedMenuItem
) { item in
NavigationLink(
destination: {
switch selectedMenuItem
{
case .readme:
Text("Readme")
case .about:
Text("About")
}
},
label: {
HStack
{
Image(systemName: item.symbolName)
.resizable()
.frame(
width: 24,
height: 24
)
.foregroundStyle(
.white,
fillStyle(for: item)
)
Text(item.title)
}
}
)
}
.frame(width: 200)
}
detail:
{
Image(systemName: "command.square.fill")
.resizable()
.frame(width: 128, height: 128)
}
}
private func fillStyle(for menuItem: MenuItem) -> Color
{
switch menuItem
{
case .readme: .green
case .about: .blue
}
}
}
我试过切换值,值,以不同的方式组装,但无济于事。我有 SwiftUI 的经验,但不是 s 或 s,我以不同的方式使用导航,但我想坚持使用这个解决方案。
不幸的是,我无法确切地弄清楚是什么导致了这种行为。columnVisibility
navigationSplitViewStyle
List
List
NavigationLink
答: 暂无答案
评论