如何将上下文菜单应用于SwiftUI列表行中的按钮?
当我长按列表行中的按钮时,会显示所有按钮的上下文菜单。看起来整个列表行都被选中了。如何使上下文菜单仅显示按下的按钮 我已经了解了其中的一些关联,并尝试了如何将上下文菜单应用于SwiftUI列表行中的按钮?,swift,swiftui-list,swiftui,Swift,Swiftui List,Swiftui,当我长按列表行中的按钮时,会显示所有按钮的上下文菜单。看起来整个列表行都被选中了。如何使上下文菜单仅显示按下的按钮 我已经了解了其中的一些关联,并尝试了BorderlessButtonStyle()。它允许单击行中的各个按钮,但不能解决上下文菜单问题。我也尝试过使用.ontapsignature()而不是按钮(),但这也不起作用 在下面的示例中,当长按按钮1时,我希望只看到按钮1的操作,但也显示了按钮2的操作 struct ContentView:View{ var body:一些观点{ 名单
BorderlessButtonStyle()
。它允许单击行中的各个按钮,但不能解决上下文菜单问题。我也尝试过使用.ontapsignature()
而不是按钮()
,但这也不起作用
在下面的示例中,当长按按钮1时,我希望只看到按钮1的操作,但也显示了按钮2的操作
struct ContentView:View{
var body:一些观点{
名单{
ForEach((1..使用ScrollView而不是列表将上下文菜单限制为一行的一部分。@Arman它修复了此特定问题,但会导致丢失所有列表功能,如滑动以删除和重新排序(我也需要)。@Benjaminageria有此更新吗?@George_E不幸没有。。。
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()
}
}
}