NSApplication отказывается от статуса большинства приложений: скрыть v. Деактивировать - PullRequest
4 голосов
/ 19 октября 2010

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

  • click "starttimer "-> приложение подает в крайнее переднее приложение
  • истекает таймер -> приложение становится в большинстве передних приложений

Я намеренно перефразировал некоторые вещи, потому что игра с активным статусом sharedApplication неделай то, что я хочу.

Я становлюсь самым передовым приложением, выполняя [[NSApplication sharedApplication] activateIgnoringOtherApps: YES], и это прекрасно работает.

Делать обратное кажется невозможным!?

  • [[NSApplication sharedApplication] deactivate] не следует вызывать напрямую, но, что более важно, не переводит следующее приложение в «порядке табуляции команд» вперед.Приложение просто сидит там с показом строки меню, но оно больше не " active ".

  • [[NSApplication sharedApplication] hide: self] отказывается от активного состояния и переносит следующее приложение в« Порядок вкладок команд » вперед, НО он также скрывает все окна приложений.

Мне нужен какой-то способ перенести следующее приложение на вкладку командзаказ на фронт БЕЗ скрытия всех моих окон.

Есть ли хороший способ сделать это?

Решение должно быть 10,5 Leopard и 10,6 совместимых.

У меня естьэто решение, появившееся примерно в 1996 году, но оно включает в себя API-интерфейсы Carbon, и я бы действительно предпочел сделать это с помощью Cocoa или, по крайней мере, Foundation.

Любая помощь будет с благодарностью.

1 Ответ

3 голосов
/ 06 декабря 2010

Вы пробовали скрыть, а затем unhideWithoutActivation?

...