【发布时间】:2020-11-12 06:33:03
【问题描述】:
在 MacOS 的列表中双击 NavigationLink 时,谁能想到如何调用操作?我已尝试添加 onTapGesture(count:2),但它没有达到预期的效果,并覆盖了可靠选择链接的能力。
var body: some View {
NavigationView {
List {
ForEach(items) { item in
NavigationLink(destination: Item(itemDetail: item)) {
ItemRow(itemRow: item) //<-my row view
}.buttonStyle(PlainButtonStyle())
.simultaneousGesture(TapGesture(count:2)
.onEnded {
print("double tap")
})
}
}
}
}
编辑:
我在 NavigationLink 中设置了一个标签/选择,现在可以双击或单击该行的内容。唯一的问题是,虽然显示了 itemDetail 视图,但带有重音符号的“活动”状态并没有出现在链接上。有没有办法设置活动状态(突出显示状态)或扩展 NavigationLink 功能以接受双击和单击?
@State var selection:String?
var body: some View {
NavigationView {
List {
ForEach(items) { item in
NavigationLink(destination: Item(itemDetail: item), tag: item.id, selection: self.$selection) {
ItemRow(itemRow: item) //<-my row view
}.onTapGesture(count:2) { //<- Needed to be first!
print("doubletap")
}.onTapGesture(count:1) {
self.selection = item.id
}
}
}
}
}
【问题讨论】:
标签: swiftui double-click navigationview swiftui-navigationlink