Как программно сделать приложение какао активным
У меня есть фоновый процесс, который делает прозрачное окно при нажатии горячей клавиши:
[window makeKeyAndOrderFront:nil];
[[content animator] setAlphaValue:1.0]; // alpha was 0.0
... окно отображается нормально и перед другими окнами (как я этого хочу), однако, пока я не нажму вручную на окно, приложение, которое было активным, когда оно появляется, остается активным. Я ожидал, что makeKeyAndOrderFront также сделает приложение активным, однако добавление строки NSLog в мой -applicationWillBecomeActive показывает, что он не получает никаких активных уведомлений, пока не будет выполнен щелчок мышью.
Кто-нибудь знает, как я могу активировать свое приложение в то же время, когда я запускаю -makeKeyAndOrderFront? Мне нужно, чтобы он был активным, чтобы он мог начать принимать ввод с клавиатуры - нужна любая помощь:-)
3 ответа
Смотреть на [[NSApplication sharedApplication] activateIgnoringOtherApps : YES];
,
Для 10,6 или выше
[[NSRunningApplication currentApplication] activateWithOptions:(NSApplicationActivateAllWindows | NSApplicationActivateIgnoringOtherApps)];
Swift 4.2+ от @Arvin ответа
NSRunningApplication.current.activate(options: [.activateIgnoringOtherApps, .activateAllWindows])