답변:
grgarside의 스크립트에 대한 대안으로 Finder를 다시 시작할 필요가 없으며 열린 창을 새로 고치기 만하면됩니다.
앱 또는 Automator에 서비스로 저장할 수 있습니다. System Prefs> Keyboard> Shortcuts> Services에서
실행되는 서비스로 사용 Cmd ⌘ H 됩니다. …… Shortcuts> App Shortcuts의 'Hide Finder'키 명령을 기본값 이외의 것으로 변경해야했습니다.
서비스로 추가하려면 Automator를 시작한 다음 파일 메뉴> 새로 만들기를 실행하십시오.
대화 상자에서 서비스를 선택한 다음 Applescript 실행을 새 Automator 창으로 드래그하십시오. -바꾸기 (* 스크립트는 여기 *) 및 저장
안에 스크립트를 복사 / 붙여 넣기 on run
하십시오. 다른 모든 것에는 기본 매개 변수 만 필요합니다.
시스템 환경 설정> 키보드> 바로 가기> 서비스에서 마지막 행으로 추가됩니다. 원하는 트리거 키 명령을 설정하십시오.
Cmd ⌘ H 나와 같은 것을 사용 하면 Finder 숨기기를 다른 것으로 변경해야합니다. 명령이 필요 없기 때문에 가비지 바로 가기를 사용했습니다 ...
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
스크립트 자체는 보이지 않는 플래그의 현재 상태를 읽은 다음 (grgarside 버전보다 우아하지만 효과적으로), 열린 각 창을 다른보기 유형 (목록, 아이콘 등)으로 전환 한 다음 다시 다시 표시합니다.
편집 : El Capitan에서 더 이상 창을 새로 고치지 않아도 Finder를 다시 시작해야합니다.
엘 캐피 탄의 새 버전
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"
AppleShowAllFiles의 현재 값에 따라 b의 값을 true 또는 false로 설정합니다.
[[ $(defaults read com.apple.finder AppleShowAllFiles) = 1 ]] && b=false || b=true
따라서 다음과 같은 스크립트를 작성할 수 있습니다.
do shell script "[[ $(defaults read com.apple.finder AppleShowAllFiles) = 1 ]] && b=false || b=true defaults write com.apple.finder AppleShowAllFiles -bool $b" tell application "Finder" quit delay 0.2 -- without this delay there was a "connection is invalid" error reopen -- open a new default window activate -- make Finder frontmost end tell
Stack Overflow 의이 답변에 대한 Lauri의 모든 크레딧