我的目標是使刪除鍵(沒有任何修飾符)使用OSX的Finder將選定的文件移動到垃圾桶,類似於Windows資源管理器。我已經設法使用名爲Spark的優秀實用程序來實現它。 Spark只允許我在Finder中分配Delete鍵來執行某些操作。我可以讓它輸入Finder快捷鍵(命令退格),或者激活File> Move to Trash菜單項,或者運行AppleScript。在每種情況下,該文件都成功移至垃圾箱。它工作得很好......太好了。AppleScript可以確定用戶是否在Finder中輸入新文件名?
如果我正在重命名文件並按下Delete鍵,文件將移至垃圾箱,而不是光標被移除前的字母。我想不出有什麼聰明的方法來解決這個問題。我唯一能想到的就是使用AppleScript來確定文本編輯器是否在Finder中打開,以便用戶重命名文件...或者簡單地說,確定用戶是否正在用AppleScript重命名文件。有些東西告訴我這超出了AppleScript的功能。可以做到嗎?任何其他建議將是最受歡迎的。謝謝。
UPDATE:
感謝adayzdone,我現在有一個工作腳本。在Spark創建查找熱鍵,分配Delete鍵給它,使用這個腳本的作用:
tell application "System Events"
tell process "Finder"
if not (exists text field 1) then
tell menu bar 1
tell menu bar item "File"
tell menu "File"
click menu item "Move to Trash"
end tell
end tell
end tell
end if
end tell
end tell
更新2:
下面是基於adayzdone的清潔版本的更新腳本。當您重命名文件並按刪除時,我添加了一行以重新發出刪除鍵。但它有一個問題:您必須按刪除鍵兩次,每刪除一個字符。而且,當重命名完文件後,你可以讓事情處於一個奇怪的狀態:如果你按刪除刪除文件,它可能無法正常工作......在事情恢復正常之前需要再次按下刪除鍵。我認爲問題是從Spark處理的事件中發出刪除鍵。我會盡力找到一個解決方案。
tell application "System Events"
tell process "Finder"
if exists text field 1 then
keystroke "d" using {control down}
else
click menu item "Move to Trash" of menu 1 of menu bar item "File" of menu bar 1
end if
end tell
end tell
我很高興它爲你工作。檢查完整腳本的編輯答案。 – adayzdone
:)你打敗了我。我在同一時間編輯我的問題。非常感謝!!你的腳本要簡潔得多。 – ifugu
我喜歡第二種方法。非常可讀。 – ifugu