Просмотр в NSMenu не активен, если окно невидимо

Я испытываю действительно странное поведение с NSMenu в Application is agent-Application.

У меня есть следующий простой код для установки значка заголовка с NSMenu. Меню содержит настраиваемый вид с кнопкой NSSwitch.

class AppDelegate: NSObject, NSApplicationDelegate {
    
   let statusBarItem = NSStatusBar.system.statusItem(withLength: -1)
    


    func applicationDidFinishLaunching(_ aNotification: Notification) {
        
        let icon = NSImage(imageLiteralResourceName:"flag")
        statusBarItem.image = icon
        
        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
        
        menu.addItem(menuItem)
        
        statusBarItem.menu=menu
        
    }

Работает неплохо, пока фокусируется окно приложений.

Когда я закрываю главное окно приложения, заголовок все еще виден (потому что это приложение-агент). И теперь кнопка переключения в меню больше не реагирует, то есть я не могу ее включить или выключить. Вы можете очень быстро дважды щелкнуть по нему, но это уже не нормальное поведение, и это как-то связано со скрытым окном. Как я уже сказал, работает, если окно видно.

Любые идеи? Спасибо!


person user688262    schedule 04.02.2021    source источник
comment
Работает ли NSSwitch, если приложение не является самым передним и окно все еще открыто? Вы пробовали без Application is agent? Какая строка заголовка все еще видна?   -  person Willeke    schedule 05.02.2021
comment
Отвечает ли это на ваш вопрос? NSDatePicker в NSStatusBar NSSMenuItem не получает ввод   -  person Willeke    schedule 05.02.2021