当我长按列表行中的一个按钮时,所有按钮的上下文菜单都会显示出来。看起来好像整个列表行都被选中了。我该如何做才能仅为所按下的按钮显示上下文菜单?
我看到了这个问题,它有一定的相关性,并尝试使用
在下面的示例中,我期望只在按下按钮1时看到“按钮1的操作”,但是“按钮2的操作”也会显示出来。
我看到了这个问题,它有一定的相关性,并尝试使用
BorderlessButtonStyle()
。它使得行中的各个按钮可点击,但无法解决上下文菜单问题。我也尝试使用.onTapGesture()
而不是Button()
,但也没有成功。在下面的示例中,我期望只在按下按钮1时看到“按钮1的操作”,但是“按钮2的操作”也会显示出来。
struct ContentView: View {
var body: some View {
List {
ForEach((1..<3), content: { _ in
ListButton()
})
}
}
}
struct ListButton: View {
var body: some View {
HStack {
Spacer()
Button("Button 1") { }
.buttonStyle(BorderlessButtonStyle())
.contextMenu(menuItems: {
Text("Action for button 1")
})
Spacer()
Button("Button 2") { }
.buttonStyle(BorderlessButtonStyle())
.contextMenu(menuItems: {
Text("Action for button 2")
})
Spacer()
}
}
}