Есть две переменные, которые определяют, какое окно является ключевым. Одним из них является параметр в приложении, который определяет, какое из его окон находится в фокусе, а другой - какое приложение активно. Скрытие окон в нашем собственном приложении сделает установщик видимым, но он не станет ключевым, если вы не сделаете приложение установщика активным. У вас есть несколько вариантов сделать это.
Во-первых, вы можете деактивировать свое приложение, используя:
[[NSApplication sharedApplication] deactivate];
Далее вы можете найти NSRunningApplication
для установщика и активировать его:
NSArray *apps = [[NSWorkspace sharedWorkspace] runningApplications];
NSRunningApplication *app = // find installer
[app activateWithOptions:0];
Но в вашем случае я бы порекомендовал использовать NSWorkspace
, чтобы открыть программу установки вместо вас, вместо запуска через NSTask
. NSWorkspace
автоматически деактивирует ваше приложение, поэтому вам не нужно делать это, вы получите отзыв о том, был ли файл открыт успешно, и автоматически выбрано приложение для его открытия.
BOOL success = [[NSWorkspace sharedWorkspace] openFile:@"path/to/file.pkg"];