Overview
A function builder for NSMenus, similar in spirit to SwiftUI’s ViewBuilder.
Usage example (see “MenuBuilder Demo” for more details):
let menu = NSMenu {
MenuItem("Click me")
.onSelect { print("clicked!") }
MenuItem("Item with a view")
.view {
MyMenuItemView()
}
SeparatorItem()
MenuItem("About") {
MenuItem("Version 1.2.3")
MenuItem("Copyright 2021")
}
MenuItem("Quit")
.shortcut("q")
.onSelect { NSApp.terminate(nil) }
}
menu.replaceItems {
MenuItem("Replaced item").onSelect { print("Hello!") }
}
DocC does not currently support documentation for extensions of system APIs, so here is the interface of MenuBuilder’s extension to NSMenu:
extension NSMenu {
init(@MenuBuilder _ items: () -> [NSMenuItem])
func replaceItems(@MenuBuilder with items: () -> [NSMenuItem])
}