Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将上下文菜单应用于SwiftUI列表行中的按钮?_Swift_Swiftui List_Swiftui - Fatal编程技术网

如何将上下文菜单应用于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()
        }
    }
}