Come posso forzare a livello di programmazione una finestra mac come finestra frontale? Ho la maniglia della finestra e voglio assicurarmi che la mia finestra sia visualizzata sopra tutte le altre finestre. Posso usare sia Carbon & Cacao per questo.Come forzare la finestra Mac in primo piano?
6
A
risposta
12
per il cacao, è possibile impostare il livello di finestra utilizzando:
[window setLevel:NSFloatingWindowLevel];
Una finestra mobile mostrerà di sopra di tutte le altre finestre regolari, anche se la vostra applicazione non è attiva.
Se si desidera rendere la vostra applicazione attiva, è possibile utilizzare:
[NSApp activateIgnoringOtherApps:YES];
e
[window makeKeyAndOrderFront:nil];
0
Se è possibile utilizzare (solo 32 bit) kOverlayWindowClass:
WindowRef carbon_window = NULL;
CreateNewWindow(kOverlayWindowClass , ... , &carbon_window);
// if you need cocoa:
NSWindow *cocoa_window = [[NSWindow alloc] initWithWindowRef:carbon_window];
In caso contrario, creare una NSWindow e impostare il livello della finestra su kCGOverlayWindowLevel
.
Si noti che questo sarà anche sopra il cruscotto. Se vuoi essere sotto la dashbord usa kCGUtilityWindowLevel.
Stai parlando di una finestra nel tuo programma? O vuoi gestire le finestre di altre app? – Yuji
Raymond Chen ha scritto su questo stesso problema, quando ha posto la domanda importante: "E se due programmi l'avessero fatto?" Una volta che te ne rendi conto, capirai che non può mai _force_ questo, solo _request_ questo. – MSalters