Используя 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)
}
}