Search code examples
swiftmacosappkit

macOS: Adding a divider between NSMenu NSMenuItem's?


How do you add dividers to a status bar menu in code? E.g.

let menu = NSMenu()
let editMenuItem = NSMenuItem()
editMenuItem.title = "Preferences..."
menu.addItem(editMenuItem)

let quitMenuItem = NSMenuItem()
quitMenuItem.title = "Quit"
menu.addItem(quitMenuItem)

self.statusBarItem.menu = menu

In this example, I'd like to add a divider between the first and second items.


Solution

  • If you mean a separator there is a class method

    let menu = NSMenu()
    let editMenuItem = NSMenuItem()
    editMenuItem.title = "Preferences…"
    menu.addItem(editMenuItem)
    
    menu.addItem(.separator())
    
    let quitMenuItem = NSMenuItem()
    quitMenuItem.title = "Quit"
    menu.addItem(quitMenuItem)
    
    self.statusBarItem.menu = menu