objective-c cocoa macos nsapplication

objective c - ¿Cómo activar programáticamente la aplicación de cacao?



objective-c cocoa (3)

Tengo un proceso en segundo plano que hace que aparezca una ventana transparente cuando se presiona una tecla de acceso rápido:

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

... la ventana aparece bien y delante de las otras ventanas (como quiero), sin embargo, hasta que haga clic manualmente en la ventana, la aplicación que estaba activa cuando aparece la ventana permanece activa. Esperaba que ''makeKeyAndOrderFront'' activara también la aplicación, sin embargo, al agregar una línea NSLog a mi -applicationWillBecomeActive muestra que no recibe ninguna notificación activa hasta que se realiza el clic del mouse.

¿Alguien sabe cómo puedo activar mi aplicación @ al mismo tiempo que emito el -makeKeyAndOrderFront? Lo necesito activo para que pueda comenzar a aceptar entradas de teclado - cualquier ayuda necesaria :-)


Mire [[NSApplication sharedApplication] activateIgnoringOtherApps : YES]; .


Para 10.6 o mayor

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


Swift 4.2+ de @Arvin responde

NSRunningApplication.current.activate(options: [.activateIgnoringOtherApps, .activateAllWindows])