Быть осведомленным о том, когда NSStatusItem скрыт - PullRequest
8 голосов
/ 13 октября 2011

У меня есть приложение, которое использует NSStatusItem. На маленьких экранах в строке состояния мало места. Когда пользователь переключается на приложение с большим количеством пунктов меню, мой статус становится скрытым. Есть ли способ получить уведомление об этом?

Что я пробовал до сих пор:

  • Я проверил, запущен ли NSNotification: Нет
  • Я проверил, удаляется ли statusView из иерархии представления: Нет
  • Я проверил isHiddenOrHasHiddenAncestor: Нет

Вот код, который я использую для создания элемента статуса.

self.statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];
MyStatusView *maView = [[[MyStatusView alloc] initWithFrame:CGRectMake(0, 0, 50, 22)] autorelease];
[statusItem setTitle:@"Ma Status Item"];
[statusItem setView:maView];

1 Ответ

1 голос
/ 30 ноября 2011

Довольно умно осознавать, что когда элемент статуса скрыт, его окно перемещается в фоновый режим.

Теперь вы ищете следующее уведомление: NSWindowDidResignKeyNotification (или NSWindowDidResignMainNotification в зависимости от контекста вашего приложения)

Для ясного объясненияо разнице между ключевым окном и основным окном см. this .

...