Applescript select 预览中的高亮颜色

Applescript to select a highlight color in Preview

自从我经常使用 Preview 以来,我最近在拼命想找到解决问题的方法后发现了 Applescript。打开突出显示颜色的按钮没有任何菜单项或键盘快捷键(仅适用于黄色的一般突出显示,我的计划是为其余可用颜色创建快捷方式),它仅位于工具栏中。我遇到的类似问题的代码没有用(可能是因为我严重缺乏这方面的知识......),所以如果有人能想出一些办法,我将不胜感激!

首先我要注意 Preview 不包含 AppleScript 字典文件,例如Preview.sdef,因此,没有一组最小的 默认命令 ,在 默认之外不容易编写脚本命令并需要UI脚本系统事件来实现目标。

请注意 UI 脚本 可能很笨拙并且有其自身的问题,需要在 系统偏好设置 中授予权限> 安全与隐私 > 隐私 > 可访问性,如有必要,应提示选择哪一个,但我提供了两个供您考虑的选项。



选项 1

第一个选项只是触发 Highlight menu,然后您可以在其中按 key color 的第一个字符,然后按 enter 设置所选的 color。对于colorPurple,因为还有Pink,按P 当然会突出显示 Pink,所以按 Pu 会 select 紫色。您还可以使用 Up/Down 箭头键 导航 菜单.

这将允许您使用分配的 键盘快捷键 启动 菜单 而不必明确分配 每个人的键盘快捷键 颜色.

示例 AppleScript 代码:

tell application "Preview" to activate
delay 0.1
tell application "System Events"
    tell group 2 of ¬
        toolbar 1 of ¬
        window 1 of ¬
        application process "Preview"
        
        try
            click menu button 1 of group 1
        on error
            click menu button 1 of radio group 1
        end try
        
    end tell
end tell

注:例子中AppleScript[=58=上面显示的代码 请注意,有一个 try 语句 错误处理 来点击目标 菜单。这是因为分层UI元素结构根据高亮是否已经在当前文件。这也允许 scriptkeyboard shortcut 触发时静默失败 document 突出显示无法执行。



选项 2

下一个选项提供了一个列表供选择,然后根据select离子设置高亮颜色

示例 AppleScript 代码:

set colorList to ¬
    {"Yellow", "Green", "Blue", "Pink", "Purple"}

set chosenHighlightColor to ¬
    (choose from list colorList ¬
        with title "Select Highlight Color") ¬
        as string

if chosenHighlightColor is "false" then return

tell application "Preview" to activate

tell application "System Events"
    tell group 2 of ¬
        toolbar 1 of ¬
        window 1 of ¬
        application process "Preview"
        
        try
            click menu button 1 of group 1
        on error
            click menu button 1 of radio group 1
        end try
        delay 0.05
        try
            click menu item chosenHighlightColor of menu 1
        end try
        
    end tell
end tell

注:例子中AppleScript[=58=上面显示的代码 请注意,有一个 try 语句 错误处理 来点击目标 菜单。这是因为分层UI元素结构根据高亮是否已经在当前文件。这也允许 scriptkeyboard shortcut 触发时静默失败 document 突出显示无法执行。



Automator Service/Quick 操作 键盘快捷键

要将这些示例中的任何一个用作键盘快捷键,请创建一个AutomatorService/Quick Action运行 Shell Script action 替换默认代码示例 AppleScript 代码.

然后在系统偏好设置 > 键盘 > 快捷方式 > 服务 为其指定一个 键盘快捷键 。我使用 ⇧⌘H 因为它尚未分配给 Preview.

中的任何内容

备注:

  • 这在 macOS CatalinamacOS Big Sur 以及 语言和地区下对我进行了测试和工作 系统偏好设置 中的 设置为 English US.
  • 如果文档处于全屏视图中,则不起作用。

Select高亮颜色


Automator Service/Quick 操作


注意:示例 AppleScript code 就是这样,没有包含任何 错误处理 不包含任何额外的 错误处理 可能是适当的。用户有责任根据需要或需要添加任何 错误处理 。查看 try statement and error statement in the AppleScript Language Guide. See also, Working with Errors. Additionally, the use of the delay 命令 在适当的事件之间可能是必要的,例如delay 0.5,适当设置延迟