Я ищу "лучшее" способ создания полноэкранного оверлея в Mac OS X. Я хочу создать прозрачный или полупрозрачный оверлей, который заботится о событиях мыши и показывает другие элементы ввода / вывода.
Это наложение должно располагаться над всеми другими элементами графического интерфейса (например, наложение CMD-Tab).
Вы знаете, как это сделать эффективно? В данный момент я играю с таким кодом:
int windowLevel = CGShieldingWindowLevel();
NSRect windowRect = [[NSScreen mainScreen] frame];
NSWindow *overlayWindow = [[NSWindow alloc] initWithContentRect:windowRect
styleMask:NSBorderlessWindowMask
backing:NSBackingStoreBuffered
defer:NO
screen:[NSScreen mainScreen]];
[overlayWindow setReleasedWhenClosed:YES];
[overlayWindow setLevel:windowLevel];
[overlayWindow setBackgroundColor:[NSColor colorWithCalibratedRed:0.0
green:0.0
blue:0.0
alpha:0.5]];
[overlayWindow setAlphaValue:1.0];
[overlayWindow setOpaque:NO];
[overlayWindow setIgnoresMouseEvents:NO];
[overlayWindow makeKeyAndOrderFront:nil];
… и он работает нормально, но у меня нет возможности запускать какие-либо анимации, такие как медленное увеличение прозрачности (медленное затемнение экрана) и т. Д.
Хотя я не понимаю, как поместить это окно в фоновый режим, не отпуская его и позволяя время от времени всплывать.
Так есть лучший или «стандартный» способ сделать это?