Нет, чтобы получить меню вашего приложения, вам нужно было бы перевести приложение в процесс переднего плана (т. Е. Больше не LSUIElement). После перехода приложения на передний план оно больше не может вернуться обратно.
Функция для перехода приложения на передний план TransformProcessType
найдена в Carbon Process Manager .
Ваши варианты здесь: 1) после вывода процесса на первый план с помощью TransformProcessType
, запишите небольшой хитрый трюк, который закрывает и перезапускает приложение. Другой вариант 2) - создать двухэтапное приложение (этот вариант я бы предпочел, если это возможно в вашем случае), когда часть приложения всегда находится в фоновом режиме (т. Е. LSUIElement). Когда это приложение хочет выдвинуть окно с меню, оно запускает вспомогательное приложение, которое содержит окно и т. Д. Как обычное приложение. Когда пользователь закончил, это приложение закрывается и закрывается. Эти два приложения могут легко обмениваться данными через любое количество механизмов IPC, включая сокеты UD, распределенные объекты Cocoa, NSMessagePorts и т. Д.