如何使用Objective C将应用程序分配给Mac OS X Lion的所有桌面(空间)?

use*_*849 15 macos cocoa objective-c osx-snow-leopard osx-lion

我正在尝试在Mac OS X Lion上创建一个应用程序,该应用程序需要将应用程序分配给所有桌面(空间).这可以通过右键单击应用程序的停靠栏图标并选择选项>分配到>所有桌面来手动完成.但是,我需要通过Objective C找到一种方法来实现这一点.有没有办法以编程方式实现这一目标?

Mac*_*ade 17

您可以使用方法setCollectionBehavior:NSWindowNSWindowCollectionBehaviorCanJoinAllSpaces逐位标志.

它将使窗口在所有空间都可见.

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 ];
Run Code Online (Sandbox Code Playgroud)

注意

此方法是在Mac OS X 10.6中引入的.

在Mac OS X 10.5上,您需要使用的canBeVisibleOnAllSpaces:方法NSWindow.