0

我正在使用以下代码在 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 视频播放器附带的屏幕截图。

在此处输入图像描述

4

1 回答 1

0

这很简单: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
于 2021-02-04T21:30:46.283 回答