私の目標は、Windows Explorer と同様に、OSX の Finder を使用して、選択したファイルを削除キー (修飾子なし) でゴミ箱に移動させることです。私は、Spark と呼ばれる優れたユーティリティ アプリケーションを使用してそれを行うことができました。Spark では、Finder でのみ、Delete キーを割り当てて何かを実行できます。Finder のショートカット キー (command-backspace) をタイプするか、File > Move to Trash メニュー項目をアクティブにするか、AppleScript を実行することができます。いずれの場合も、ファイルはゴミ箱に正常に移動されます。それはうまく機能します...少しうまくいきます。
ファイルの名前を変更しているときに Delete キーを押すと、カーソルの前の文字が削除されるのではなく、ファイルがごみ箱に移動されます。この問題を回避する賢い方法は思いつきません。私が考えることができる唯一のことは、AppleScript を使用して、ユーザーがファイルの名前を変更するために Finder でテキスト エディターが開いているかどうかを判断することです... または、簡単に言えば、ユーザーが AppleScript でファイルの名前を変更しているかどうかを判断します。これは AppleScript の機能を超えていることがわかります。それはできますか?他の提案は大歓迎です。ありがとう。
アップデート:
adayzdone のおかげで、今ではスクリプトが動作しています。SparkでFinder のホットキーを作成し、それに 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 のよりクリーンなバージョンに基づく更新されたスクリプトです。ファイルの名前を変更して削除を押したときに、削除キーを再発行する行を追加しました。ただし、問題があります。1 文字削除するたびに削除キーを 2 回押す必要があります。また、ファイルの名前を変更すると、奇妙な状態のままになる可能性があります。削除を押してファイルを削除すると、機能しない可能性があります...正常に戻る前に、もう一度削除キーを押す必要があります。問題は、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