Я пытаюсь создать приложение на Mac OS X Lion, которое требует, чтобы приложение было назначено для всех десктопов (пробелов). Это можно сделать вручную, щелкнув правой кнопкой мыши значок приложения и выбрав Параметры > Назначить > Все рабочие столы. Но мне нужно найти способ сделать это через Objective C. Есть ли способ достичь этого программно?
Как назначить приложение всем рабочим столам Mac OS X Lion с помощью Objective C?
Ответ 1
Вы можете использовать метод setCollectionBehavior:
NSWindow
с NSWindowCollectionBehaviorCanJoinAllSpaces
побитовый флаг.
Это сделает окно видимым во всех пространствах.
NSUInteger collectionBehavior;
// Gets the current collection behavior of the window
collectionBehavior = [ myWindow collectionBehavior ];
// Adds the option to make the window visible on all spaces
collectionBehavior |= NSWindowCollectionBehaviorCanJoinAllSpaces;
// Sets the new collection behaviour
[ myWindow setCollectionBehavior: collectionBehavior ];
Примечание
Этот метод был введен в Mac OS X 10.6.
В Mac OS X 10.5 вам понадобится canBeVisibleOnAllSpaces:
метод NSWindow
.