Я создаю приложение Cocoa Mac, которое работает в фоновом режиме, но имеет главное окно.
Чтобы оно работало в фоновом режиме, я установил для «Приложение только фон» значение «ДА».
Я создал системный трей:

Если вы закроете главное окно, вы можете снова открыть его, нажав «открыть».
У меня, однако, есть некоторые проблемы с наслоением окон:
- Когда я запускаю приложение, открывается главное окно, однако оно появляется на заднем плане, позади любых других окон или приложений, которые я открывал в то время.
- Нажатие на «open» не выводит окно на передний план.Он открывается правильно, если он был закрыт, однако он остается за любыми окнами.
- При нажатии на настройки или около возникает та же проблема.Это открывает правильное окно, но оно появляется позади любых других окон.
- В моем главном окне есть текстовое поле.Я могу нажать на нее, курсор мигает, как будто я готов набрать.Но когда я набираю текст, он печатает в каком-то другом фоновом окне!Например, если у меня TextWrangler открыт в фоновом режиме, он будет печатать там вместо текстового поля ...
Вот мой код для обработки "open":
- (IBAction)show:(id)sender {
[NSApp activateIgnoringOtherApps:YES];
[window makeKeyAndOrderFront:sender];
}
Обратите внимание, что, если я установлю «Приложение только фон» на «НЕТ» (что означает, что у меня появляется значок дока), то нажатие на «Открыть» выведет окно на передний план, как и ожидалось.И ввод в текстовое поле работает как ожидалось.