使用SwiftUI,我在 Mac应用中具有侧边栏导航来更改视图。单击侧边栏中的项目会更改右侧的视图。但是,启动应用程序时,侧栏List
不会注册第一次点击。单击两次即可选择一个项目。之后,边栏将按应有的方式运行,只需单击一下即可更改视图。
如何使用List
解决此初始启动问题?
import SwiftUI
struct DetailView: View {
var selection: String
var body: some View {
containedView()
}
private func containedView() -> AnyView {
switch selection {
case "? Apple":
return AnyView(AppleView())
case "? Banana":
return AnyView(BananaView())
case "? Coconut":
return AnyView(CoconutView())
default:
return AnyView(Text("Some view here").frame(maxWidth: .infinity,maxHeight: .infinity))
}
}
}
struct SidebarView: View {
let items = ["? Apple","? Banana","? Coconut","? Cherry","? Peanut","? Peach","? Tomato","? Bread","? Pizza","? Broccoli","? Kiwi","? Cheese","? Watermelon"]
var body: some View {
List(items,id: \.self) { item in
NavigationLink(destination: DetailView(selection: item)) {
Text("\(item)")
}
}
.listStyle(SidebarListStyle())
}
}
struct ContentView: View {
var body: some View {
NavigationView {
SidebarView()
DetailView(selection: "? Apple")
}
.frame(height: 300)
}
}