请求完善Preview非菜单项Draw/Sketch的AppleScript快捷键脚本
嘿,这个问题我太熟了!辅助功能检查器绝对是你搞定这个脚本的利器,先给你说说它的作用,再帮你把脚本完善好~
一、辅助功能检查器(UI/Accessibility Inspector)的作用
它完全能帮你解决路径定位的问题,核心用处有这几个:
- 实时可视化Preview窗口的UI层级结构:你可以用它的瞄准镜工具点击Draw/Sketch按钮,直接看到按钮所属的容器、控件类型等完整路径,再也不用瞎猜路径了
- 适配工具栏/标记栏的不同状态:当工具栏隐藏时,按钮的父容器会发生变化,检查器能精准捕捉到这种状态下的正确路径,解决脚本里路径错误导致的点击失败问题
- 操作超简单:打开
/Applications/Utilities/里的「辅助功能检查器」,点击左上角的瞄准镜图标,对准Preview里的目标按钮就能看到详细结构
二、完善后的AppleScript脚本
我帮你调整了脚本逻辑,优先支持所有工具栏隐藏的场景,同时兼容标记栏显示的情况,还做了容错处理:
-- 可修改这里的功能名称,切换为"Draw" 或 "Sketch" set targetTool to "Draw" activate application "Preview" delay 0.2 -- 给Preview预留窗口激活的时间,可根据设备响应速度调整 tell application "System Events" tell application process "Preview" -- 先检查是否有打开的窗口,避免无窗口时报错 if exists window 1 then set targetWindow to window 1 try -- 优先尝试:所有工具栏隐藏时的路径 click radio button targetTool of radio group 1 of targetWindow on error try -- fallback场景:标记栏显示时的路径 click radio button targetTool of radio group 1 of splitter group 1 of targetWindow on error errMsg display dialog "无法找到" & targetTool & "按钮:" & errMsg buttons {"确定"} default button 1 end try end try else display dialog "Preview没有打开的窗口!" buttons {"确定"} default button 1 end if end tell end tell
脚本细节说明
- 开头的
targetTool变量可以自由切换成"Draw"或"Sketch",你可以分别导出两个应用程序对应不同功能 - 增加了窗口存在性检查,避免Preview无打开文件时触发报错
- 缩短了延迟时间,适配大多数设备的响应速度
- 严格按照你的需求,优先尝试工具栏隐藏的场景,失败后再兼容标记栏显示的情况
三、使用方法
- 打开「脚本编辑器」,粘贴上面的代码,修改
targetTool为你需要的功能名称 - 点击菜单栏「文件」→「导出」,格式选择「应用程序」,保存为比如
Preview-Draw.app或Preview-Sketch.app - 打开「系统偏好设置」→「键盘」→「快捷键」→「应用快捷键」
- 点击「+」按钮,应用程序选择刚才保存的脚本应用,菜单标题随便填(比如"Toggle Draw Tool"),然后设置你想要的快捷键(比如
Cmd+Shift+D) - 对Sketch功能重复上述步骤,设置专属快捷键
这样就能用自定义键盘快捷键快速触发Preview的Draw/Sketch功能啦~
内容的提问来源于stack exchange,提问作者Dmomo
相关产品推荐
相关产品推荐

