Applescript - 打开一个新标签

时间:2018-04-25 10:58:14

标签: tabs applescript

我的AppleScript功能相当有限,所以请原谅可能是一个简单的问题。

我将这个脚本作为Automator服务,它将在新窗口中打开一系列别名 通过首选项>键盘>快捷键>服务在Finder中通过键命令触发 服务在Finder中接收选定的文件或文件夹

on run {input, parameters}
    repeat with aFile in input
        tell application "Finder"
            try
                set origFile to original item of aFile
                set aWindow to make new Finder window
                set aWindow's target to origFile's parent
                select origFile
            end try
        end tell
    end repeat
end run

我想尝试在标签中打开,最好不要使用GUI脚本 set aWindow to make new Finder window似乎没有等效set aWindow to make new Finder tab&淘到Apple的在线文档' make'或者' tab'已证明相当无果......或者更多的水果,所有错误的品种:/

我有来自其他来源的GUI版

on new_tab()
    tell application "System Events" to tell application process "Finder"
        set frontmost to true
        tell front menu bar to tell menu "File" to tell menu item "New Tab"
            perform action "AXPress"
        end tell
    end tell
end new_tab

所以,如果没有直接的方法,我怎么能把它折叠到我现有的脚本中?

MacOS 10.13.4

1 个答案:

答案 0 :(得分:1)

macOS 默认 在标签中打开文件夹而不是新窗口 首选项 Finder , Dock 首选项 打开文档时首选标签 系统偏好设置设置仅限全屏,以下示例 AppleScript 代码应按原样运行,并合并原始 AppleScript 代码new_tab 处理程序代码

on run {input, parameters}
    set madeNewWindow to false
    repeat with i from 1 to count input
        tell application "Finder"
            if (kind of item i of input) is equal to "Alias" then
                set origFile to original item of item i of input
                if not madeNewWindow then
                    set theWindow to make new Finder window
                    set madeNewWindow to true
                else
                    my makeNewTab()
                end if
                set theWindow's target to origFile's parent
                select origFile
            end if
        end tell
    end repeat
end run

on makeNewTab()
    tell application "System Events" to tell application process "Finder"
        set frontmost to true
        tell front menu bar to tell menu "File" to tell menu item "New Tab"
            perform action "AXPress"
        end tell
    end tell
end makeNewTab
  • 在我的系统上,我没有必要使用delay 命令但是,delay 命令可能会也可能不会需要在您的系统上使用,如果需要,请在适当时调整时添加。

  • Automator 服务运行AppleScript 操作进行编码,其中服务在[Finder] 中接收选定的[文件或文件夹]。

  • 需要将 Finder 添加到安全性&中的辅助功能系统偏好设置中的隐私

  • 在macOS High Sierra下测试。

注意: 示例 AppleScript 代码就是这样,并且不使用任何其他错误处理然后显示的内容,仅表示完成任务的众多方法之一。用户有责任根据需要添加/使用适当的错误处理