【问题标题】:MacOS. How to disable Expose苹果系统。如何禁用暴露
【发布时间】:2013-06-11 17:27:05
【问题描述】:

是否可以通过编程方式禁用 Expose?

【问题讨论】:

    标签: cocoa macos fullscreen


    【解决方案1】:

    我相信您可以在 CocoaDev - DontExposeMe 找到可能的答案。使用未记录的方法时要非常小心,因为这样的事情可以并且确实会消失或发生变化,这可能会导致您的应用程序出现意外行为。

    早在 2004 年,有人在 Apple 的 Carbon Development 邮件列表和 Eric Sc​​hlegel(为 Apple 工作)responded 上提出了这个问题。基本上,当时的消息并不好,并建议这仅适用于可以适当设置系统首选项的信息亭机器。他还提到这是一个已知的错误 - rdar://3499719。

    遗憾的是,这似乎是您现在可能不应该尝试做的事情。如果某些应用程序开始弄乱我在 Marcel 指出的文章中提到的系统偏好,然后因为它崩溃或其他原因继续搞砸它们,我当然不会感激。

    所以,我建议前往bugreport.apple.com 并提交您自己的错误。它确实有所作为,因为 Apple 确实使用类似错误报告的频率来帮助判断他们是否应该做或修复某些事情。确保包含 Eric S. 回复的 url 和他提到的错误编号。

    【讨论】:

    • 谢谢!当我的应用在全屏模式下运行时,我通过让用户无法访问活动屏幕角来解决我的一个问题。
    【解决方案2】:

    阅读this article 了解如何以编程方式禁用某些 osx 功能的提示。这是一种解决方法(因为它只是删除了热键),但它应该满足您的需求。

    【讨论】:

    • 我的应用程序在全屏模式下运行,我应该禁用临时(在应用程序运行时)公开。我使用 SetSystemUIMode 来隐藏 Dock 和菜单栏。而且我需要一些相同的可能性来禁用 Expose。
    • +1 正是要暗示这一点。 Pro Tools 非常懒惰,只会告诉你自己禁用某些热键!
    • 这是暴雪在其游戏 AFAIK 中采用的方法,但请注意——它在魔兽世界中很长一段时间都被搞砸了。当时,我宁愿它没有那么有帮助。
    【解决方案3】:

    如果您正在寻找让您的应用不受暴露影响,只需将窗口的收集行为设置为 NSWindowCollectionBehaviorStationary。即,

        [[[[NSApplication sharedApplication] delegate] window] setCollectionBehavior:NSWindowCollectionBehaviorStationary];
    

    您的全屏应用不会参与 Expose。

    【讨论】:

      猜你喜欢
      • 2017-12-30
      • 1970-01-01
      • 2020-07-29
      • 1970-01-01
      • 1970-01-01
      • 2021-11-14
      • 1970-01-01
      • 1970-01-01
      • 2018-06-19
      相关资源
      最近更新 更多