当窗口所属的应用程序失去焦点时,如何阻止我的 Mac(Mac OS Snow Leopard)上的窗口隐藏。
并非所有 Mac 上的应用程序都会这样做,但 Photoshop 和 Transmission 是表现出这种行为的应用程序的完美示例。
当您想要在另一个应用程序(例如文字处理器)中键入笔记,但参考聚焦文字处理器时隐藏的窗口的内容来开始键入笔记时,这会令人沮丧!
一定有一个选项(或黑客手段)可以禁用此功能吗?
我一直认为 Apple 应该是 UI 设计的大师,但允许应用程序这样做似乎是错误的。
答案1
你可能正在谈论实用窗口或者面板。
(所有粗体部分均为我所标注)
面板可以是特定于应用程序的,也可以是系统范围的。当应用程序停用时,特定于应用程序的面板就会消失。
[...]
用户可以同时打开多个面板;它们会浮动在文档窗口的顶部。当用户将文档设为活动状态时,应用程序的所有面板都应置于最前面,无论用户打开面板时哪个文档处于活动状态。当您的应用程序处于非活动状态时,其面板应隐藏。面板不应作为文档列在窗口菜单中,但您可以在窗口菜单中放置显示或隐藏所有面板的命令。图 14-38 显示了不同样式的面板的示例。
Mac OS X 实用程序窗口与 Windows 实用程序窗口在几个重要方面有所不同:
- 它们有一个拖动条,使用户可以在桌面上重新定位它们,但拖动条通常没有文本标题。
- 当您的应用程序处于后台时(即,其窗口处于非活动状态但可见),其实用程序窗口应隐藏起来。(您负责实现此行为。)
- 除了特定于应用程序的实用程序窗口之外,Mac OS X 还支持系统范围的实用程序窗口,即使父应用程序隐藏起来,这些窗口仍然可见。
我再次强调。
由于应用程序开发人员需要自己实现此行为,因此我认为没有合理的方法可以解决此行为(合理的意思是,既不在运行时更改应用程序的代码,也不以某种方式更改 Cocoa 框架)。当然,您可以请求 Transmission 人员使用不带此行为的常规窗口(例如从 Finder 的显示检查器到获取信息)。
如果我不得不猜的话,你想做一些不寻常的事情,比如创建软件文档。这可能就是这种行为不适合你的原因。
作为一种解决方法,快速截取这些面板的屏幕截图,并在另一个应用程序中工作时查看它们。
答案2
在某些情况下,截屏的另一种解决方法是从您希望保持可见的窗口直接切换到您想要获得焦点的窗口(即您的文本编辑器或诸如此类的窗口)。没有使用某种形式的应用程序切换(dock、cmd+tab 等)。
您至少可以通过两种方式来实现此目的:
排列窗口,以便您可以单击想要获得焦点的窗口,同时让想要保持可见的窗口获得焦点。
使用 Exposé (F3) 直接切换到您想要获得焦点的窗口,同时您希望保持可见的窗口具有焦点。
这至少对 Photoshop 文档窗口有效,在其他情况下也可能有效。请注意,这将不是例如,适用于更传统的“调色板” Photoshop 窗口(图层、工具栏等)。