NSWindow保留在所有Windows /应用程序的后面

时间:2013-01-19 05:28:14

标签: macos osx-lion nswindow

所以不确定如何谷歌搜索这个问题...但是,我想建立一个NSWindow,居住在所有其他Windows / apps&我希望它显示在每个任务控制空间(仍然在后面)。

我见过其他应用程序这样做,所以我知道这是可能的,只是不知道如何。

(我指的是Lion的功能,名为Mission Control,你可以在不同的空间切换。)

2 个答案:

答案 0 :(得分:2)

找到答案,有一个方法/枚举使窗口出现在所有“空格”(任务控制)中。

[self.window setCollectionBehavior:NSWindowCollectionBehaviorCanJoinAllSpaces];

并且可以使窗户保持最远的方式。

[self.window setLevel:kCGDesktopIconWindowLevelKey - 1];

您所要做的就是使用这两种方法,它会完全符合我的要求。但是,我希望有一种方法可以防止它从任务控制下来时动画(我不知道)。

答案 1 :(得分:0)

您想要设置NSWindow的levelcollectionBehavior属性。

您要使用的窗口级别取决于您从窗口中执行的操作。您可以在CoreGraphics / CGWindowLevel.h中找到可用窗口级别的常量。我建议您尝试CGWindowLevelForKey(kCGDesktopIconWindowLevelKey) ± 1

您指定的集合行为还取决于您所追求的行为。您问题中的简要说明表明NSWindowCollectionBehaviorStationary | NSWindowCollectionBehaviorCanJoinAllSpaces可能是一个很好的起点。