Как придать фокусировке NSPopover при нажатии на NSStatusItem? - PullRequest
0 голосов
/ 29 января 2020

Я создаю приложение MacOS Menubar в Swift, используя NSStatusItem, который открывает NSPopover при нажатии кнопки NSStatusItem.

Как я также могу дать NSPopover фокус? В настоящее время пользователю необходимо щелкнуть поповер, чтобы сфокусировать его, но я хочу программно захватить фокус.

Заранее спасибо

1 Ответ

0 голосов
/ 29 января 2020

Решение состоит в том, чтобы вызвать makeKey() в собственном окне.

Это можно сделать либо из основного NSApplicationDelegate, например,

func applicationDidFinishLaunching(_ aNotification: Notification) {

     // Other setup

     popover.contentViewController?.view.window?.makeKey()
}

, либо из соответствующего NSViewController, например

override func viewDidAppear() {
    super.viewDidAppear()
    view.window?.makeKey()
}

Документация здесь

...