Подтвердить что ты не робот

Как назначить приложение всем рабочим столам Mac OS X Lion с помощью Objective C?

Я пытаюсь создать приложение на Mac OS X Lion, которое требует, чтобы приложение было назначено для всех десктопов (пробелов). Это можно сделать вручную, щелкнув правой кнопкой мыши значок приложения и выбрав Параметры > Назначить > Все рабочие столы. Но мне нужно найти способ сделать это через Objective C. Есть ли способ достичь этого программно?

4b9b3361

Ответ 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.