It's done in code. This line in function constructMenu: timeMenuItem.view = alarmView
func applicationDidFinishLaunching(_ aNotification: Notification) {
// Insert code here to initialize your application
let statusBar = NSStatusBar.system
let length:CGFloat = -1
statusBarItem = statusBar.statusItem(withLength: length)
statusBarItem.button?.image = NSImage(named: "fooalarm.png")
let statusBarMenu = NSMenu(title: "Alarm")
statusBarItem.menu = statusBarMenu
alarmTimePickerCellDelegate = AlarmTimePickerCellDelegateObj()
alarmView = .init(frame: NSRect(x: 0, y: 0, width: 200, height: 20))
alarmView.datePickerElements = NSDatePicker.ElementFlags.hourMinute
alarmView.datePickerStyle = .textFieldAndStepper
alarmView.delegate = alarmTimePickerCellDelegate
alarmView.dateValue = NSDate() as Date
constructMenu()
}
func constructMenu() {
timeMenuItem = NSMenuItem()
timeMenuItem.view = alarmView
startAlarmMnuItem = NSMenuItem(title: "Set Alarm", action: #selector(setAlarm), keyEquivalent: "s")
stopAlarmMnuItem = NSMenuItem(title: "Stop Alarm", action: #selector(stopAlarm), keyEquivalent: "S")
quitAlarmMnuItem = NSMenuItem(title: "Quit Alarm", action: #selector(quitAlarm), keyEquivalent: "q")
menu.addItem(timeMenuItem)
menu.addItem(startAlarmMnuItem)
menu.addItem(stopAlarmMnuItem)
menu.addItem(quitAlarmMnuItem)
menu.autoenablesItems = false
statusBarItem.menu = menu
stopAlarmMnuItem.isEnabled = false
}