Applescript - открыть новую вкладку - PullRequest
0 голосов
/ 25 апреля 2018

Мои возможности AppleScript довольно ограничены, поэтому, пожалуйста, простите, что может быть простым вопросом.

У меня есть этот скрипт в качестве службы Automator, который откроет серию псевдонимов в новых окнах.
Инициируетсявведите команду в Finder через prefs> клавиатура> ярлыки> службы.
Служба получает выбранные файлы или папки в 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» оказался довольно бесполезным ... или, скорее, большим количеством плодов, все неправильного сорта: /

У меня есть версия с графическим интерфейсом из другого источника

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 голосов
/ 26 апреля 2018

С 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 команды могут или не могут понадобиться в вашей системе и если это так, добавьте при необходимости при настройке значение в зависимости от ситуации.

  • Кодировано для использования в Запустите AppleScript действие в Automator служба , где Служба получает выбранный [ файлы или папки] в [Finder] .

  • Требуется Искатель для добавления в Доступность в Безопасность и конфиденциальность в Системные настройки .

  • Протестировано в MacOS High Sierra.


Примечание: Пример AppleScript код как раз и не использует никакой другой обработки ошибок тогда то, что показано и предназначено только для того, чтобы показать один из многих способов выполнить задачу. Пользователь всегда обязан добавить / использовать соответствующую обработку ошибок по мере необходимости / желаемого.

...