Вывести диалог NSRunAlertPanel на передний план в фоновом процессе

Если вы позвоните

NSRunAlertPanel()

из фонового процесса в Cocoa диалог не выходит на передний план, а вместо этого остается за другими окнами. Этот пост показывает, что вы можете вывести диалог на передний план, если вы преобразовать процесс в процесс переднего плана. Однако, если вы сохраняете процесс фоновым, есть ли способ добиться такого поведения?


person mon4goos    schedule 05.05.2010    source источник


Ответы (1)


Что ты пытаешься сделать? Фоновые процессы могут по-прежнему отображать пользовательский интерфейс и выводить себя на передний план без использования TransformProcessType; просто убедитесь, что вы LSUIElement, а не LSBackgroundOnly (или устаревшие эквиваленты NS *). Единственная причина, по которой вам обычно нужно использовать TransformProcessType, — это если вам нужен значок Dock или строка меню.

person Nicholas Riley    schedule 06.05.2010
comment
У меня запущена программа, которая присутствует в строке меню. Когда программа запускается, я хочу, чтобы она вызывала диалог, в котором пользователя спрашивали, хотят ли они настроить запуск программы при запуске. Прямо сейчас при вызове NSRunAlertPanel() диалог появляется, но часто скрыт за другими окнами. Как мне сохранить мою программу работающей только с наличием строки меню, но сделать так, чтобы диалог выводился на передний план всех окон? - person mon4goos; 06.05.2010
comment
Затем вам нужно вывести свое приложение на передний план: [NSAppactivateIgnoringOtherApps: YES]; - person Nicholas Riley; 06.05.2010