【问题标题】:Open window such that is shows on all desktops打开窗口,以便在所有桌面上显示
【发布时间】:2015-10-17 14:43:09
【问题描述】:

我有一个截图的东西,它的作用是截取当前可见内容的截图,然后打开一个覆盖所有内容的全屏窗口。但是,这会在桌面 1 上的父窗口的桌面上打开。如果用户专注于桌面 2(由于喜欢全屏应用程序或其他原因),那么打开的窗口将不会显示在桌面 2 上。

所以我想知道是否有一个窗口级别或其他东西(我尝试了所有的窗口级别),这将使一个窗口出现在所有桌面上。

谢谢

【问题讨论】:

    标签: objective-c macos


    【解决方案1】:

    这听起来像是NSWindowCollectionBehaviorCanJoinAllSpacesNSWindowCollectionBehaviorStationary。设置为窗口的collectionBehavior

    (您可能也想设置窗口级别,但这是关于排序而不是集合/空间行为。如果您有一个窗口菜单,那么您可能还需要NSWindowCollectionBehaviorIgnoresCycle。)

    【讨论】:

    • 非常感谢@Peter,我的问题是我必须在已经打开的窗口上执行此操作。所以我很难设置它:(stackoverflow.com/questions/31866399/…你对此有什么建议吗?
    • 抱歉,@Peter 遇到了问题,但我还不能解决这个问题 :( 是否可以在运行时从 ctypes 中解决这个问题?我在 js-ctypes developer.mozilla.org/en-US/docs/Mozilla/js-ctypes
    • @Noitidart:我从未使用过 js-ctypes,但这很有可能实际上是 AppKit 的限制。我建议创建一个 Objective-C 示例应用程序来尝试它,而无需通过 js-ctypes;如果它在那里工作,这是一个 js-ctypes 问题,如果没有,你应该file a bug
    • 啊,谢谢@Peter,我没有 objc 经验,只是移植到 jsctypes 哈哈。我会四处询问,看看是否有人可以为我测试这个。我基本上需要询问某人是否可以将现有窗口转换为在所有空间上应用。如果你有机会,你可以试试吗? :P 我会开始四处打听,只是想我会从你开始 :P 谢谢彼得!
    • 有效!刚刚做了[nswindow collectionBheavior] 来获取当前行为,然后我修改它,然后用[nswindow setCollectionBehavior: newbehavior 将其设置回来!但是,该窗口未显示在其他 PID 上,请您看一下 - stackoverflow.com/questions/40442644/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多