SwiftUI:如何在 macOS 应用程序中实现编辑菜单

Posted

技术标签:

【中文标题】SwiftUI:如何在 macOS 应用程序中实现编辑菜单【英文标题】:SwiftUI: How to implement Edit menu in macOS app 【发布时间】:2021-02-13 20:38:10 【问题描述】:

我正在使用 SwiftUI 和新的 App 生命周期构建一个 macOS 应用程序。

开始新项目后,所有默认的 macOS 菜单项(如剪切、复制、粘贴)都已存在,但它们显示为灰色。 如何实现这些默认菜单项的方法?

编辑:我目前在macOS Big Sur 11.0.1 Beta (20B5012d) 上使用Xcode 12.2 beta 3 (12B5035g)。我不想使用 Storyboard 或 AppDelegate 来解决这个问题,而是使用 SwiftUI 和新的 App 生命周期。

【问题讨论】:

您是否尝试选择一些文本然后选择复制?对我来说,它们开箱即用,可以说没有任何额外的代码。还是需要复制一些自定义类型? 你说得对,例如,如果我选择 TextField 的内容,它就可以开箱即用。但是,如果没有关注特定的输入字段,我希望能够运行自定义复制功能。 您可能需要说明您使用的是什么版本的 macOS 和 Xcode。 我刚刚澄清了我原来的问题。 【参考方案1】:

查看命令修饰符、CommandGroup 和 CommandMenu。

@main
struct MyApp: App 

var body: some Scene 
    WindowGroup 
        ContentView()
    .commands 
        // for example
        CommandGroup(replacing: .help) 
            Button(action: someActionHere()) 
                Text("MyApp Help")
            
        
        CommandMenu("Edit") 
            // ...
        
    


【讨论】:

我喜欢这篇文章。它解释得更多。 swiftwithmajid.com/2020/11/24/commands-in-swiftui 这将创建一个名为 Edit 的新菜单,不允许为现有的 Edit 菜单实现功能。

以上是关于SwiftUI:如何在 macOS 应用程序中实现编辑菜单的主要内容,如果未能解决你的问题,请参考以下文章