Как заставить окно Mac на передний план? - PullRequest
6 голосов
/ 04 мая 2010

Как программно заставить окно Mac быть передним окном? У меня есть дескриптор окна, и я хочу убедиться, что мое окно отображается над всеми остальными окнами. Для этого я могу использовать и углерод, и какао.

Ответы [ 2 ]

12 голосов
/ 04 мая 2010

Для Какао вы можете установить уровень окна, используя:

[window setLevel:NSFloatingWindowLevel];

Плавающее окно будет отображаться над всеми другими обычными окнами, даже если ваше приложение не активно.

Если вы хотите сделать свое приложение активным, вы можете использовать:

[NSApp activateIgnoringOtherApps:YES];

и

[window makeKeyAndOrderFront:nil];
0 голосов
/ 04 мая 2010

Если вы можете (только 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.

...