SwiftUI 实现文本组件弹出上下文菜单

328 阅读1分钟

SwiftUI 为我们提供了 contextMenu 修饰符,用于在应用程序中创建弹出式菜单。

上下文菜单是由一组按钮组成的,每个按钮都有自己的动作、文本和图标。文本和图标可以直接在按钮中提供,因为SwiftUI 将提供一个隐式的 HStack 来确保它们符合系统标准的外观和感觉。

所以,如果我们想要一个上下文菜单附加到一些文本组件上,我们可以为菜单提供两个按钮,示例代码如下:

struct ContentView: View {
    var body: some View {
        Text("选项")
            .contextMenu {
                Button {
                    print("视频")
                } label: {
                    Label("视频", systemImage: "video")
                }
                
                Button {
                    print("音频")
                } label: {
                    Label("音频", systemImage: "mic")
                }
            }
    }
}

上述代码给 选项 文本添加了上下文弹出菜单,一个音频一个视频的选项。效果图如下:

截屏2024-12-05 14.18.33.png