Уведомление пользователя об открытии другого меню NSStatusItem на Mac - PullRequest
4 голосов
/ 27 февраля 2012

Я пишу приложение для Mac, которое находится в строке меню и предоставляет пользователю экземпляр NSPanel, когда они щелкают элемент состояния. Я хочу скрыть окно всякий раз, когда открывается меню другого элемента статуса. Прямо сейчас моя панель остается открытой; это выглядит так:

My app is on the left, attached to the infinity status item

Я вижу, что другие приложения, такие как мое, закрываются, когда другой элемент состояния открывает свое меню, поэтому мне интересно, какие уведомления они узнают, чтобы исчезнуть. Я посмотрел на NSWindowDelegate и NSApplicationDelegate, но я не вижу генерируемых уведомлений.

Есть предложения?

1 Ответ

4 голосов
/ 27 февраля 2012

Я понял это!В awakeFromNib я настраивал свойства моего NSPanel экземпляра.Я использовал следующее:

[panel setStyleMask:panel.styleMask ^ NSTitledWindowMask];

Переключение на следующее:

[panel setStyleMask:(panel.styleMask ^ NSTitledWindowMask ^ NSNonactivatingPanelMask)];

Сделал трюк.Я понял это после прочтения сообщения в блоге Нила Инглиса об использовании MAAttachedWindow аналогичным образом.

...