【问题标题】:How to add a button to a NSMenu that is used as Status bar menu?如何将按钮添加到用作状态栏菜单的 NSMenu?
【发布时间】:2021-02-02 21:04:11
【问题描述】:

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

【问题讨论】:

    标签: macos nsmenu nsstatusbar


    【解决方案1】:

    这很简单: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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多