Я пишу приложение, которое пытается нарисовать простое NSWindow поверх значков рабочего стола (Mac OSX 10.7 Lion).
NSWindow *systemInfoWindow = [[NSWindow alloc] initWithContentRect:frame
styleMask:NSBorderlessWindowMask
backing:NSBackingStoreBuffered
defer:NO];
systemInfoWindow.delegate = self;
[systemInfoWindow setCollectionBehavior:NSWindowCollectionBehaviorCanJoinAllSpaces];
[systemInfoWindow setBackgroundColor:backgroundColorSpace];
[systemInfoWindow makeKeyAndOrderFront:NSApp];
[systemInfoWindow setLevel:kCGDesktopIconWindowLevel];
Эта часть кода работает довольно хорошо, и NSWindow рисует поверх иконок.
Но если я переключаюсь между двумя пробелами, мое NSWindow остается за иконками.
/ * === Обновление === * /
Я думаю, что у меня есть проблемы с моим уровнем окна. Для лучшего понимания я загрузил два скриншота.
Пробел 1 - окно остается на значке, как я хочу
http://dl.dropbox.com/u/1503795/Space1.png
Пробел 2 - окно находится за значками рабочего стола. Они также должны оставаться на вершине
http://dl.dropbox.com/u/1503795/Space2.png
Еще одна проблема, которую я обнаружил. Если я активировал приложение и остаюсь на первом Space, и все выглядит хорошо, как на моем первом снимке экрана. Если я выберу «Файлы» на рабочем столе, окно также перейдет на задний план:
Извините, не могу выложить еще один скриншот
Надеюсь, моя проблема немного понятнее.
Я не знаю, как это исправить. У кого-нибудь есть идея?
Спасибо!