![OS X dock ,通过点击应用程序的 dock 图标来切换应用程序打开的窗口吗?](https://linux22.com/image/1246983/OS%20X%20dock%20%EF%BC%8C%E9%80%9A%E8%BF%87%E7%82%B9%E5%87%BB%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%9A%84%20dock%20%E5%9B%BE%E6%A0%87%E6%9D%A5%E5%88%87%E6%8D%A2%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%89%93%E5%BC%80%E7%9A%84%E7%AA%97%E5%8F%A3%E5%90%97%EF%BC%9F.png)
假设我已激活 Safari,并且我想通过按 Safari 的 Dock 图标(而不是按 cmd+>)在其打开的窗口之间循环。
是否有可能以某种方式实现这一目标?
答案1
Dock.app 中没有代码可以执行此操作。command+`是循环显示应用程序打开的窗口的正常方式。如果您想通过单击 Dock 图标来循环显示,您可以编写一个 AppleScript 来按下该按键,并将其放在 Safari 旁边的 Dock 中。
tell application "System Events"
keystroke "`" using {command down}
end tell
将上述内容放入 AppleScript 编辑器,并将其保存为应用程序。除非我们阻止它窃取焦点,否则它将无法工作,这可以通过右键单击应用程序包并显示包内容、打开 Contents/Info.plist,然后添加 LSBackgroundOnly 键(应用程序仅在后台运行)来实现,布尔值为 1。将其添加到 dock 并单击它以执行该按键。它适用于任何应用程序。
我觉得有点奇怪,你竟然会突然认为这是必要的或可能的。你是不是想通过这个实现更大的目标?
答案2
可以通过将 Dock 中的 Safari 图标替换为以下 AppleScript(按照 NReilingh 的示例)并将其保存为应用程序来实现所需的行为:
tell application "Safari"
activate
end tell
tell application "System Events"
keystroke "`" using {command down}
end tell
这将使 Safari 成为焦点并循环显示其活动窗口。如果 Safari 未打开,它将在第一次打开时打开,因此这也与普通的 Safari 图标一样工作。
要完成您需要编辑脚本属性的操作 - 在 Finder 中右键单击脚本应用程序并选择显示包内容,然后在内容中打开 Info.plist。
- 您需要添加具有选中值的 LSBackgroundOnly(应用程序仅为后台)键(因为如果没有该键,循环将无法正常工作并且图标只会切换最新的两个窗口)。
- 要获取真正的 Safari 图标,您可以将 compass.icns 从 Safari.app 的 Contents | Resources 复制/粘贴到新脚本的相应位置。之后,将 Icon 文件属性更改为指向新图标。
- 更改后保存属性列表文件。
- 可能还需要重新保存脚本。
现在你应该在 Dock 中看到一个类似 Safari 的图标,但是通过后续点击添加了窗口循环功能 - 如果你将脚本命名为 Safari,那么没有人会注意到它与原始脚本有什么区别。
答案3
您可以右键单击 Dock 图标,菜单将列出所有应用程序打开的窗口。
答案4
“命令 >”?
为什么不使用“Cmd `”(反引号,Tab 上方的键),这是在任何应用程序的窗口之间循环的标准键?如果不使用,那么您想“绑定”到可以单击的某个东西吗?
编辑:一种简单的内置鼠标专用方法是在系统偏好设置中设置热点角以显示所有应用程序窗口,然后您可以单击所需的窗口。但这并不“循环”。