Пользовательский NSStatusItem с пользовательским представлением - Использовать NSWindow, NSView, пользовательский NSMenuItem? - PullRequest
2 голосов
/ 10 ноября 2009

Я пытаюсь создать приложение LSUIElement, которое ведет себя как Spotlight, CoverSutra и другие приложения этого типа. Мне удалось создать пользовательский NSStatusItem, который открывает всплывающее окно NSWindow, но проблема в том, что приложение, которое в настоящее время имеет фокус, будет фокусироваться на моем пользовательском NSWindow.

Я основывался на примере Мэтта Джеммелла (http://mattgemmell.com/2008/03/04/using-maattachedwindow-with-an-nsstatusitem)

Например, если вы находитесь в Safari и нажимаете на значок Spotlight, текущее окно Safari не выделяется серым цветом и сохраняет фокусировку. Когда вы нажимаете ESC в Spotlight, фокус снова возвращается к окну Safari.

Мне не удалось сделать это с моим пользовательским NSWindow. Я должен щелкнуть обратно в окно, чтобы вернуть ему фокус.

Так что я хотел бы знать, каким путем идти, чтобы достичь этого. Является ли решение NSWindow, NSPanel, NSMenu с пользовательским NSMenuItem?

1 Ответ

4 голосов
/ 22 марта 2010

Используйте NSPanel и NSNonactivatingPanelMask в качестве styleMask или отметьте опцию в IB.

...