Как вызвать окно Mac к переднему плану?

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

6
задан Thomi 4 May 2010 в 08:29
поделиться

2 ответа

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

[window setLevel:NSFloatingWindowLevel];

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

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

[NSApp activateIgnoringOtherApps:YES];

и

[window makeKeyAndOrderFront:nil];
12
ответ дан 9 December 2019 в 20:40
поделиться

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

0
ответ дан 9 December 2019 в 20:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: