我希望能够通过编程方式设置列表中的选定行。
以下是我的示例,通过2个按钮实现该目标。
尝试像这样使列表可选:
以下是我的示例,通过2个按钮实现该目标。
struct ContentView: View {
@State private var selection = 2
var body: some View {
VStack {
List() {
//List(selection: $selection) {. // does not compile
Text("Line 0").tag(1)
Text("Line 1").tag(1)
Text("Line 2").tag(2)
Text("Line 3").tag(3)
Text("Line 4").tag(4)
Text("Line 5").tag(5)
}
.listStyle(SidebarListStyle())
Text("Selected Item :\(self.selection)")
HStack {
Button(action: {if (self.selection < 5 ) { self.selection += 1 }} ) {Text("⬇︎")}
Button(action: {if (self.selection > 0 ) { self.selection -= 1 }} ) {Text("⬆︎")}
}
}
.frame(maxWidth: .infinity, maxHeight: .infinity)
}
}
尝试像这样使列表可选:
List(selection: $selection)
代码无法编译。
编译器报错: 无法推断复杂闭包的返回类型; 添加显式类型以消除歧义