Как программно сделать приложение cocoa активным

У меня есть фоновый процесс, который создает прозрачное окно при нажатии горячей клавиши:

[window makeKeyAndOrderFront:nil];
[[content animator] setAlphaValue:1.0]; // alpha was 0.0

... окно отображается отлично и перед другими окнами (как я этого хочу), однако, пока я вручную не нажму на окно, какое бы приложение не было активным, когда окно появляется, остается активным. Я ожидал, что "makeKeyAndOrderFront" также сделает приложение активным, но добавив строку NSLog к моему -applicationWillBecomeActive, это не приведет к активному уведомлению до тех пор, пока не будет сделан щелчок мыши.

Кто-нибудь знает, как я могу настроить активное приложение @в то же время, когда я выдаю -makeKeyAndOrderFront? Мне нужно, чтобы он был активным, чтобы он мог начать принимать ввод с клавиатуры - любая помощь нужна: -)

2 ответа

Посмотрите [[NSApplication sharedApplication] activateIgnoringOtherApps : YES];.


Для 10.6 или больше

[[NSRunningApplication currentApplication] activateWithOptions:(NSApplicationActivateAllWindows | NSApplicationActivateIgnoringOtherApps)];

licensed under cc by-sa 3.0 with attribution.