【发布时间】:2013-06-11 17:27:05
【问题描述】:
是否可以通过编程方式禁用 Expose?
【问题讨论】:
标签: cocoa macos fullscreen
是否可以通过编程方式禁用 Expose?
【问题讨论】:
标签: cocoa macos fullscreen
我相信您可以在 CocoaDev - DontExposeMe 找到可能的答案。使用未记录的方法时要非常小心,因为这样的事情可以并且确实会消失或发生变化,这可能会导致您的应用程序出现意外行为。
早在 2004 年,有人在 Apple 的 Carbon Development 邮件列表和 Eric Schlegel(为 Apple 工作)responded 上提出了这个问题。基本上,当时的消息并不好,并建议这仅适用于可以适当设置系统首选项的信息亭机器。他还提到这是一个已知的错误 - rdar://3499719。
遗憾的是,这似乎是您现在可能不应该尝试做的事情。如果某些应用程序开始弄乱我在 Marcel 指出的文章中提到的系统偏好,然后因为它崩溃或其他原因继续搞砸它们,我当然不会感激。
所以,我建议前往bugreport.apple.com 并提交您自己的错误。它确实有所作为,因为 Apple 确实使用类似错误报告的频率来帮助判断他们是否应该做或修复某些事情。确保包含 Eric S. 回复的 url 和他提到的错误编号。
【讨论】:
阅读this article 了解如何以编程方式禁用某些 osx 功能的提示。这是一种解决方法(因为它只是删除了热键),但它应该满足您的需求。
【讨论】:
如果您正在寻找让您的应用不受暴露影响,只需将窗口的收集行为设置为 NSWindowCollectionBehaviorStationary。即,
[[[[NSApplication sharedApplication] delegate] window] setCollectionBehavior:NSWindowCollectionBehaviorStationary];
您的全屏应用不会参与 Expose。
【讨论】: