SwiftUI:contextMenu 菜单

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SwiftUI:contextMenu 菜单相关的知识,希望对你有一定的参考价值。

参考技术A 当用户点击按钮或导航链接时,很明显,SwiftUI应该触发这些视图的默认操作。但是,如果他们按住某些东西怎么办?在较旧的iPhone上,用户可以通过用力按压某些东西来触发 3D Touch,但是原理是相同的:用户希望与他们进行交互的内容有更多的选择。

SwiftUI允许我们将上下文菜单附加到对象以提供此额外功能,所有这些操作都使用 contextMenu() 修饰符完成。您可以为此选择一个按钮,它们将按顺序显示,因此我们可以构建一个简单的上下文菜单来控制视图的背景颜色,如下所示:

就像 TabView 一样,上下文菜单中的每个项目都可以附有文本和图像,同样,无论您以什么顺序提供它们还是尝试提供多个图像都无关紧要——它始终是第一个文本,然后一个图像。

在使用上下文菜单时,我为您提供了一些技巧,以帮助确保您为用户提供最佳体验:

请记住,上下文菜单本质上是隐藏的,因此在将重要操作隐藏在上下文菜单中之前,请三思而后行。

SwiftUI contextMenu - 如何添加红色(危险)动作[重复]

【中文标题】SwiftUI contextMenu - 如何添加红色(危险)动作[重复]【英文标题】:SwiftUI contextMenu - how add red (dangerous) actions [duplicate] 【发布时间】:2019-11-11 14:06:47 【问题描述】:

这是一个简单的上下文菜单。 1) 如何设置 Text("delete") 和 Image red.

2) 如何添加分隔线(下图)

struct customMenu: View 

    var onDelete: (() -> Void)? 

    init(onDelete: @escaping () -> Void) 
        self.onDelete = onDelete;
    

    var body: some View 
        VStack 
            if (self.onDelete != nil) 
                Button(action: self.onDelete!) 
                    HStack 
                        Text("delete") 
                        Image(systemName: "trash") 
                    
                
            
        
    

【问题讨论】:

你能告诉我你如何使用上下文菜单的代码吗? 还不支持。我已经问过这个here 谢谢!我的问题是双重的***.com/questions/58467846/… 【参考方案1】:

很简单,只需输入以下内容:

Divider()

【讨论】:

以上是关于SwiftUI:contextMenu 菜单的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI嵌入在Form或Section中的视图上下文菜单(contextMenu)无法独立弹出的解决

SwiftUI - 通过 ContextMenu 呈现模态

macOS App SwiftUI 中的 ContextMenu 按钮点击

SwiftUI contextMenu - 如何添加红色(危险)动作[重复]

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

材质背景上的 SwiftUI contextMenu 在激活时会使内容变暗