SwiftUI 中的上下文菜单和触觉触摸

Ade*_*ony 7 ios swift ios13 swiftui

我正在使用 SwiftUI 开发一个新应用程序,我需要上下文菜单中的一些帮助。我想知道如何在 SwiftUI 中为上下文菜单添加自定义预览?以及如何将菜单项分组为多个组并为菜单中的任何项添加子项?还有如何使删除按钮变为红色?或改变他们的颜色?

在此处输入图片说明 在此处输入图片说明

另一件事,我如何在应用程序图标上添加菜单以打开特定视图或执行如下操作: 在此处输入图片说明

Rob*_*mac 2

  1. 为了添加自定义预览,您可以使用此https://developer.apple.com/documentation/swiftui/view/contextmenu(menuitems:preview:) 预览应该符合View.

  2. 要将项目拆分为多个组,只需Divider()在项目之间添加一个即可。

  3. 要将项目的颜色更改为红色Delete,请将按钮角色更改.destructive为如下例所示。

  4. 要将子项添加到一项,请使用 a ,Menu如下所示,但我认为不鼓励这种方法。

这是一个包含上述所有内容的示例。

.contextMenu {
    Menu("This is a menu") {
        Button {
            doSomething()
        } label: {
            Text("Do something")
        }
    }
    
    Button {
        doSomethingAgain()
    } label: {
        Text("Something")
    }
    
    Divider()
    
    Button(role: .destructive) {
        performDelete()
    } label: {
        Label("Delete", systemImage: "trash")
    }
} preview: {
    Text("This is the preview") // you can add anything that conforms to View here
}
Run Code Online (Sandbox Code Playgroud)