如何将按钮添加到用作状态栏菜单的 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
我正在使用以下代码在 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