如何使用 SwiftUI 将上下文菜单添加到 NavigationLink?

Posted

技术标签:

【中文标题】如何使用 SwiftUI 将上下文菜单添加到 NavigationLink?【英文标题】:How to add Context Menu into NavigationLink using SwiftUI? 【发布时间】:2021-07-19 09:31:38 【问题描述】:

我正在尝试使用以下代码将 contextMenu 添加到 NavigationLink:

   NavigationLink(recent.name, destination: TextEditing(isNew: false, fileName: recent.name)).contextMenuButton("Rename") 
                   // code
                    
                   

,但我收到 swift 编译器错误:编译器无法在合理的时间内对该表达式进行类型检查;尝试将表达式分解为不同的子表达式

【问题讨论】:

【参考方案1】:

尝试将要执行的代码放在视图结构中的单独函数中,然后从上下文菜单中调用它:

// put this in your view struct
func action() 
    // code to run your menu action

然后从上下文菜单中调用它

NavigationLink(recent.name, destination: TextEditing(isNew: false, fileName: recent.name)).contextMenu 
                Button("Rename", action: action)
            

【讨论】:

以上是关于如何使用 SwiftUI 将上下文菜单添加到 NavigationLink?的主要内容,如果未能解决你的问题,请参考以下文章

如何将上下文菜单应用于 SwiftUI 表格行?

SwiftUI 中的上下文菜单预览没有圆角

SwiftUI:contextMenu 菜单

SwiftUI 上下文菜单是不是使用 LayoutConstraints?

您可以自定义 SwiftUI 上下文菜单的激活突出显示颜色吗?

如何将上下文菜单项添加到FlowDocumentScrollViewer内的textBox