Деактивировать приложение агента после запуска в Cocoa

Какой метод следует вызвать для деактивации приложения сразу после его запуска в applicationDidFinishLaunching: методе делегата? Или, может быть, есть лучшее место, чтобы сделать это? В документации по методу deactivate для NSApplication сказано, что я не должен вызывать этот метод напрямую, так как AppKit лучше знает, как деактивировать вещи.


person Eimantas    schedule 15.11.2009    source источник


Ответы (2)


Возможно, сработает использование -[NSApplication hide:] или, возможно, активируйте другое приложение с помощью -[NSRunningApplication activateWithOptions:] (только 10.6, хотя). Однако я не предвижу особых проблем с использованием deactivate:.

person Dave DeLong    schedule 15.11.2009
comment
Я думаю, что попробую с подходом NSRunningApplication. Большое спасибо! - person Eimantas; 16.11.2009

Непонятно, чего вы пытаетесь достичь.

Вы можете использовать -hide: для деактивации приложения. Я бы также без колебаний использовал -deactivate, если он действительно делает то, что вам нужно. Просто обычные приложения не деактивируют себя явным образом; Я думаю, что это то, что говорит документация.

Однако, если вы установите LSUIElement в Info.plist, ваше приложение не должно стать активным при запуске; у него также не будет строки меню или значка в доке.

person Darren    schedule 15.11.2009
comment
Приложение становится активным после запуска, так как я добавил глобальный монитор событий, и я получаю звуковые сигналы каждый раз, когда нажимаю глобальную клавишу, зарегистрированную в глобальном мониторе событий. Глобальные мониторы событий не направляют события в приложение, пока оно активно. Верно? - person Eimantas; 16.11.2009