2010-05-04 18 views
6

Jak programowo wymusić okienko mac jako okno przednie? Mam uchwyt okna i chcę upewnić się, że moje okno jest wyświetlane ponad wszystkimi innymi oknami. Mogę użyć do tego celu zarówno kofeiny Carbon &.Jak zmusić okno Mac na pierwszym planie?

+0

Mówisz o oknie w swoim programie? A może chcesz zajmować się oknami innych aplikacji? – Yuji

+2

Raymond Chen napisał o tym właśnie problemie, gdy zadał ważne pytanie: "Co by było, gdyby dwa programy to zrobiły?" Kiedy to zrozumiesz, zrozumiesz, że nigdy nie można tego zrobić, tylko żądamy tego. – MSalters

Odpowiedz

12

kakao, można ustawić poziom okna przy użyciu:

[window setLevel:NSFloatingWindowLevel]; 

pływająca oknie pojawi powyżej wszystkich innych zwykłych okien, nawet jeśli aplikacja nie jest aktywna.

Jeśli chcesz, aby Twoja aplikacja aktywny, można użyć:

[NSApp activateIgnoringOtherApps:YES]; 

i

[window makeKeyAndOrderFront:nil]; 
0

Jeśli można (tylko wersja 32-bitowa) używać kOverlayWindowClass:

WindowRef carbon_window = NULL; 
CreateNewWindow(kOverlayWindowClass , ... , &carbon_window); 
// if you need cocoa: 
NSWindow *cocoa_window = [[NSWindow alloc] initWithWindowRef:carbon_window]; 

W przeciwnym razie utwórz plik NSWindow i ustaw poziom okna na kCGOverlayWindowLevel.

Należy pamiętać, że będzie to również nad deską rozdzielczą. Jeśli chcesz być poniżej deski rozdzielczej, użyj kCGUtilityWindowLevel.