当我长按列表行中的按钮时,将显示所有按钮的所有上下文菜单。看起来整个列表行均已选中。如何才能使上下文菜单仅针对按下的按钮显示?
我已经看到this question有点相关,并尝试了BorderlessButtonStyle()
。它使行中的单个按钮可以单击,但不能解决上下文菜单问题。我也尝试过使用.onTapGesture()
代替Button()
,但这也不起作用。
在下面的示例中,我期望在长按按钮1时仅看到按钮1的动作-但也会显示按钮2的动作。 / p>
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()
}
}
}