objective-c – 如何创建一个出现在全屏窗口顶部的Cocoa窗口?

objective-c – 如何创建一个出现在全屏窗口顶部的Cocoa窗口?,第1张

概述我需要在OS X的程序中创建一个“全屏叠加窗口”.确切地说,窗口必须始终位于所有其他窗口的顶部,包括在非最大化窗口空间的菜单栏顶部,以及在他们自己的空间中最大化的窗户之上,以及在Exposé期间的顶部.它不得参与“改变空间”动画;即,其位置必须始终相对于物理屏幕固定. (窗口将是半透明的,将忽略鼠标事件,但我知道如何执行此 *** 作.) 如何实现这种“叠加窗口”行为?我到目前为止: >我应该将windo 我需要在OS X的程序中创建一个“全屏叠加窗口”.确切地说,窗口必须始终位于所有其他窗口的顶部,包括在非最大化窗口空间的菜单栏顶部,以及在他们自己的空间中最大化的窗户之上,以及在Exposé期间的顶部.它不得参与“改变空间”动画;即,其位置必须始终相对于物理屏幕固定. (窗口将是半透明的,将忽略鼠标事件,但我知道如何执行此 *** 作.)

如何实现这种“叠加窗口”行为?我到目前为止:

>我应该将window.level设置为CGWindowLevelKey(kCGMaximumWindowLevelKey),以便它始终位于同一空间中的其他窗口之上.
>我应该设置NSWindowCollectionBehaviorStationary,以便在Exposé期间窗口保持不变.

我不知道的是在切换空格时如何保持这种行为.我以为我应该设置NSWindowCollectionBehaviorCanJoinAllSpaces,但它的行为有两个问题:

>窗口不会出现在其他全屏窗口的顶部.
>窗口在每个空间都是重复的,而不是停留在所有空间的顶部.这很重要,因为空间切换动画.

I have heard that an NSPanel would help me,但我也无法做到这一点.

简而言之,OS X中的窗口是否可以显示在全屏窗口的顶部?你能提供一个简短的例子吗?

解决方法@H_404_25@ 你应该使用window.level = CGWindowLevelForKey(.MaximumWindowLevelKey).

空间部分我无法帮助你.

总结

以上是内存溢出为你收集整理的objective-c – 如何创建一个出现在全屏窗口顶部的Cocoa窗口?全部内容,希望文章能够帮你解决objective-c – 如何创建一个出现在全屏窗口顶部的Cocoa窗口?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1022758.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存