以下是要测试的示例代码:
let window = NSWindow(contentRect: NSRect(x: 300,y: 300,wIDth: 200,height: 200),styleMask: NSborderlessWindowMask,backing: .Buffered,`defer`: true)window.backgroundcolor = NScolor.greencolor()window.level = Int(CGWindowLevelForKey(.floatingWindowLevelKey))window.collectionBehavior = [.CanJoinAllSpaces,.TransIEnt]window.makeKeyAndOrderFront(nil)
现在它在所有桌面空间上显示窗口,但它不会在其他应用程序的全屏窗口上显示.
解决方法 如果您希望窗口在其他全屏窗口(空格)的顶部可见,则应创建代理(附件)应用程序. @H_301_21@您可以通过将应用程序的Info.pList中的lsuielement键设置为1来执行此 *** 作(是)如果您仍需要常规应用程序,则可以执行以下 *** 作:
>在主应用程序包中创建一个单独的代理(帮助程序)应用程序,它将显示您的窗口. (关于如何创建这样的应用程序,有很多很好的例子)@H_301_21@>使用NSApplicationActivationPolicy进行游戏.您可以尝试在运行时更改应用程序的激活策略.@H_301_21@斯威夫特3:
> NSApp.setActivationPolicy(.accessory)切换到代理(附件)@H_301_21@> NSApp.setActivationPolicy(.regular)切换到普通应用程序
请记住.accessory策略隐藏了Dock中的图标,您仍然需要已经拥有的代码:
window.collectionBehavior = .canJoinAllSpaceswindow.level = Int(CGWindowLevelForKey(.floatingWindow))
总结以上是内存溢出为你收集整理的swift – 在所有空间(包括其他全屏应用程序)上可见的窗口全部内容,希望文章能够帮你解决swift – 在所有空间(包括其他全屏应用程序)上可见的窗口所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)