我想在所有其他应用程序前面有一个窗口。 我希望这个窗口出现在关键字快捷方式上,例如" Alfred"应用
我尝试了很多解决方案,但是在主屏幕或第二屏幕上的全屏应用程序前面使用NSWindow无效。
我尝试了经典:
[self.window setLevel:NSMainMenuWindowLevel + 1];
[self.window setCollectionBehavior:NSWindowCollectionBehaviorStationary|NSWindowCollectionBehaviorCanJoinAllSpaces|NSWindowCollectionBehaviorFullScreenAuxiliary];
[self.window setHidesOnDeactivate:NO];
除了全屏应用以外,它的工作。
使用[self.videoWindow setStyleMask:NSBorderlessWindowMask]与NSPanel合作; 但只在主屏幕上。
有人有解决方案吗?阿尔弗雷德开发了吗?
答案 0 :(得分:3)
Alfred是作为代理实现的。代理可以在全屏应用程序的空间上显示Windows。您还应该将您的应用程序设为代理。这可以通过将Application is Agent标志添加到App的info.plist文件并将值设置为YES来实现。
答案 1 :(得分:1)
我设法通过以下方式在全屏应用程序顶部显示辅助窗口:
但是,我们还不知道如何正确显示具有Dock图标的应用。从另一方面来说,我不知道哪个应用程序可以在使用Dock图标时执行此操作。
答案 2 :(得分:0)
这可能取决于相关应用程序究竟如何实现全屏,但您可能只需要使用比NSMainMenuWindowLevel + 1
更高的窗口级别,例如CGShieldingWindowLevel()+1
您可以从Apples developer downloads下载Quartz Debug(必需免费开发者帐户)
Quartz Debug可以告诉你任何窗口的级别,你需要做的就是将你的窗口设置为高于你遇到问题的窗口(假设有问题的应用程序没有做一些奇怪的全屏幕)。 / p>