Как я могу программно вынудить окно Mac быть передним окном? Я имею дескриптор окна и хочу удостовериться, что мое окно отображено, прежде всего, другие окна. Я могу использовать оба Углерода и Какао для этого.
Для Cocoa вы можете установить уровень окна, используя:
[window setLevel:NSFloatingWindowLevel];
Плавающее окно будет отображаться выше всех других обычных окон, даже если ваше приложение не активно.
Если вы хотите сделать ваше приложение активным, вы можете использовать:
[NSApp activateIgnoringOtherApps:YES];
и
[window makeKeyAndOrderFront:nil];
Если вы можете (только 32-битный) использовать kOverlayWindowClass:
WindowRef carbon_window = NULL;
CreateNewWindow( kOverlayWindowClass , ... , &carbon_window );
// if you need cocoa:
NSWindow *cocoa_window = [[NSWindow alloc] initWithWindowRef:carbon_window];
В противном случае создайте NSWindow и установите уровень окна на kCGOverlayWindowLevel
.
Обратите внимание, что это также будет над приборной панелью. Если вы хотите быть ниже дашборда, используйте kCGUtilityWindowLevel.