Команда Automator для обновления ВСЕХ Finder / всех окон Finder

Я использую автомат с applescript (без текста, в поисковике) для включения / выключения скрытых папок. Я пытаюсь сделать это без перезапуска средства поиска, поэтому я просто хочу обновлять каждое окно средства поиска. Я хочу применить обновление ко всему искателю / каждому окну, а НЕ только к самому верхнему окну.

С текущим сценарием мне нужно вручную перейти в другую папку и вернуться, чтобы показать скрытые файлы. Я хочу автоматизировать обновление. Прямо сейчас у меня он запрашивает разрешение> если да, то переключать скрытые файлы> (И здесь я хочу обновить все поисковые системы.)

Код:

on run {input, parameters}

    set cur_state to do shell script "defaults read com.apple.finder AppleShowAllFiles"
    if cur_state = "TRUE" then
        do shell script "defaults write com.apple.finder AppleShowAllFiles FALSE"
    else
        do shell script "defaults write com.apple.finder AppleShowAllFiles TRUE"
    end if

    return input
end run 

person Yallo    schedule 14.02.2014    source источник
comment
Привет, ты говоришь, обновление, что бы это было?   -  person markhunte    schedule 15.02.2014


Ответы (1)


Хм,

Раньше (Mac OS 9) и раньше (Mac OS 10), я думаю, вы могли использовать команду обновления. Но сейчас это работает по-другому.

Я делаю это в ML и только что понял, что вам не нужно перезапускать программу поиска, чтобы изменения вступили в силу. Вам просто нужно сделать перерисовку окна. Например, если у вас есть окно поиска в виде списка, и вы можете изменить отображение скрытых файлов.

Вы можете переключить треугольник раскрытия вложенных папок, и вы увидите изменение.

Единственный способ сделать это без перезапуска искателя и всех окон - это перевернуть представление на другое и обратно.

tell application "Finder"
    set theWindows to every window
    repeat with i from 1 to number of items in theWindows
        set this_item to item i of theWindows
        set theView to current view of this_item
        if theView is list view then
            set current view of this_item to icon view
        else
            set current view of this_item to list view

        end if
        set current view of this_item to theView
    end repeat


end tell

В моих тестах это работает так хорошо для меня, что я буду использовать его для замены моего текущего сценария переключения, который использует killall finder

person markhunte    schedule 14.02.2014
comment
Спасибо. Я попробую это. - person Yallo; 28.02.2014