如何在 SwiftUI 应用程序中启用自己的菜单项

How to enable own menu item in SwiftUI app

我有带故事板菜单的 SwiftUI 应用程序,我在其中添加了自己的项目,当我 运行 该应用程序时该项目被禁用。我创建了以下 class 以启用它,我从 AppDelegate 中的 applicationDidFinishLaunching 调用了 initMenu 方法,但菜单项仍然处于禁用状态,我还需要做些什么或额外的事情才能启用它?

class MenuActions: NSObject {

func initMenu() {
    let mainMenu = NSApplication.shared.mainMenu
    mainMenu?.autoenablesItems = false
    mainMenu?.item(at: 1)?.submenu?.item(at: 0)?.isEnabled = true
}

@IBAction func new(_ sender: NSMenuItem) {
    print("fired")
}

}

在 AppDelegate 中,您只需添加 IBaction

@IBAction func new(_ sender: NSMenuItem) {
    print("fired")
}

然后将 Storyboard 文件中的 Menu Item 与该功能连接起来,默认启用。

编辑:

您可以创建自己的菜单 class 来处理 MenuItems 操作,如下所示:

class MenuItems : NSObject {
    @IBAction func new(_ sender: NSMenuItem) {
        print("fired")
    }
}

然后将情节提要中的 Object 添加到应用程序场景并将您的自定义 class 设置为该对象。此后连接您的 IBactions