上下文菜单破坏性操作,SwiftUI

Jos*_*lme 6 ios swift swiftui ios14

我正在尝试在上下文菜单中添加删除操作,但它只是显示为默认的黑色。照片应用程序的删除操作也使用红色。我已经看到了一些网上的空间,这是不是目前所提供的功能contextMenu,但是,我也看到了它在第三方应用程序使用在野外这里。有谁知道如何做到这一点?

此外,看好苹果的文档contextMenu它说,他们已经过时了,除了MacOS的一切。我觉得奇怪的是,他们在引入它一年后就弃用了它。这是否被我应该使用的另一个组件所取代?

var body: some View {
        ScrollView {
            LazyVGrid(columns: columns, spacing: 20) {
                ForEach(photos) { photo in
                    Image(uiImage: UIImage(data: photo.imageData!)!)
                        .resizable()
                        .aspectRatio(1, contentMode: .fill)
                        .contextMenu(menuItems: {
                            Button(action: {
                                deletePhoto(selectedPhoto: photo)
                            }) {
                                Label("Remove", systemImage: "trash")
                            }
                        })
                }
            }
            .padding()
            .navigationBarTitle(Text("Albums"))
            .navigationBarItems(trailing:
                Button(action: {
                    self.showingImagePicker = true
                }) {
                    Image(systemName: "plus.circle.fill")
                }
            )
            .sheet(isPresented: $showingImagePicker, onDismiss: loadImage) {
                ImagePicker(image: self.$inputImage)
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

Gen*_*isa 3

我尝试过不同的东西:fg、bg、accent 等,但没有效果。我猜目前“不可能”。

ps ContextMenu 已被弃用,但 .contextMenu 不被弃用 你做对了。

这是未弃用的。另一种不使用 ViewBuilder

public func contextMenu<MenuItems>(@ViewBuilder menuItems: () -> MenuItems) -> some View where MenuItems : View
Run Code Online (Sandbox Code Playgroud)