Изменить: Это больше не работает, начиная с Эль-Капитан. killall Finder
кажется, единственный путь сейчас.
Это мой текущий метод El Capitan, который также должен работать для Mountain Lion и старше
set newHiddenVisiblesState to "YES"
try
set oldHiddenVisiblesState to do shell script "defaults read com.apple.finder AppleShowAllFiles"
if oldHiddenVisiblesState is in {"1", "YES"} then
set newHiddenVisiblesState to "NO"
end if
end try
do shell script "defaults write com.apple.finder AppleShowAllFiles " & newHiddenVisiblesState & "; killall Finder"
Для Маверикс и Йосемити ...
Вам не нужно перезапускать Finder, только обновить окна.
Этот Applescript будет переключать состояние и обновлять ...
set newHiddenVisiblesState to "YES"
try
set oldHiddenVisiblesState to do shell script "defaults read com.apple.finder AppleShowAllFiles"
if oldHiddenVisiblesState is in {"1", "YES"} then
set newHiddenVisiblesState to "NO"
end if
end try
do shell script "defaults write com.apple.finder AppleShowAllFiles " & newHiddenVisiblesState
tell application "Finder"
set theWindows to every Finder 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
Кредит ganbustein для улучшения скрыть / показать рутину
tell application "System Events"
блок вокруг двухdo shell script ...
команд. На самом деле, я удивлен, что System Events позволяет вам сказать, что он вызываетdo shell script
.