How to assign application to all desktops (spaces) of Mac OS X Lion using Objective C?

我只是一个虾纸丫 提交于 2019-12-03 15:50:12

问题


I am trying to create an Application on Mac OS X Lion which requires application to be assigned to All Desktops (Spaces). This can be manually done by Right clicking on application's dock icon and Selecting Options > Assign To > All Desktops. But, I need to find a way to do this via Objective C. Is there a way to achieve this programmatically?


回答1:


You can use method setCollectionBehavior: of NSWindow with the NSWindowCollectionBehaviorCanJoinAllSpaces bitwise flag.

It will make the window visible on all spaces.

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 ];

Note

This method was introduced in Mac OS X 10.6.

On Mac OS X 10.5, you'll need to use the canBeVisibleOnAllSpaces: method of NSWindow.



来源:https://stackoverflow.com/questions/12203190/how-to-assign-application-to-all-desktops-spaces-of-mac-os-x-lion-using-object

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!