所以不太确定如何用谷歌搜索这个问题......但是,我想制作一个 NSWindow,驻留在所有其他窗口/应用程序的后面,我希望它显示在每个任务控制空间(仍在背部)。
我见过这样做的其他应用程序,所以我知道这是可能的,只是不知道如何。
(我指的是 Lion 的名为 Mission Control 的功能,您可以在其中切换不同的空间。)
找到了答案,有一种方法/枚举可以使窗口出现在所有“空间”(任务控制)中。
[self.window setCollectionBehavior:NSWindowCollectionBehaviorCanJoinAllSpaces];
以及一种将窗口保持在尽可能远的位置的方法。
[self.window setLevel:kCGDesktopIconWindowLevelKey - 1];
您所要做的就是使用这两种方法,它会完全按照我的要求进行。但是,我希望有一种方法可以防止它在从任务控制下来时出现动画(据我所知没有)。
你想设置 NSWindow 的level
和collectionBehavior
属性。
您要使用的窗口级别将取决于您在窗口后的行为。您可以在 CoreGraphics/CGWindowLevel.h 中找到可用窗口级别的常量。我建议尝试CGWindowLevelForKey(kCGDesktopIconWindowLevelKey) ± 1
。
您指定的收集行为还取决于您所追求的行为。您问题中的简短描述表明这NSWindowCollectionBehaviorStationary | NSWindowCollectionBehaviorCanJoinAllSpaces
可能是一个很好的起点。