如何将按钮添加到用作状态栏菜单的 NSMenu?

How to add a button to a NSMenu that is used as Status bar menu?

我正在使用以下代码在 MacOS 上为我的应用程序创建状态栏菜单:

let statusBarItem = NSStatusBar.system.statusItem(withLength: -1)

 func applicationDidFinishLaunching(_ aNotification: Notification) {

        let menu: NSMenu = NSMenu()
        var menuItem = NSMenuItem()
        menuItem.title = "Hello"
        menu.addItem(menuItem)
      
        statusBarItem.menu=menu
}

这行得通,但我想知道如何向该菜单添加自定义行,例如包含复选框或按钮。请参阅随附的 VLC 视频播放器屏幕截图。

这很简单:NSMenuItem 有一个 属性 视图。您可以为此设置任何视图。

  let menu: NSMenu = NSMenu()
        var menuItem = NSMenuItem()
        
        let frame = CGRect(origin: .zero, size: CGSize(width: 100, height: 20))
        let viewHint = NSView(frame: frame)
        let switchButton = NSSwitch(frame: frame)
        viewHint.addSubview(switchButton)
        
        
        menuItem.view = viewHint