Finder の alias list、使えるみたい

Mac OS X 10.4 の Finder(10.4 以前でも?)では、alias list が使えなかった。alias list は Finder で定義されているクラス。これを使うとファイルやフォルダの参照を Finder の参照ではなく、alias 参照のリストで返してくれる。

Script Editor で開く

tell application "Finder"
    set curSelection to selection as alias list
end tell

いちいち as alias と型変換をしなくていいので便利なのだけど、Mac OS X 10.4 では選択されている項目がひとつだけだとエラーになって動かなかった。また、複数を選択していても alias 参照に変換してくれなかった。だから、Finder の選択項目を処理する時はわざわざ次のように繰り返しで alias 参照に変換していた。

Script Editor で開く

tell application "Finder"
    set curSelection to selection

    if curSelection is {} then return

    set theseItems to {}
    repeat with thisItem in curSelection
        set end of theseItems to thisItem as alias
    end repeat

    theseItems
end tell

Mac OS X 10.5 でもこのバグの名残を見る事ができます。/Library/Scripts/Printing Scripts に入っている Convert to PDF.scpt などのスクリプトを開いて見ると、run ハンドラの最初の方で奇妙な事をしています。分かってて長いことほったらかしだったんですね(Convert to PDF.scpt の作成日が 2003 年なんですから)。

Mac OS X 10.5 の Finder では、alias list がようやく使えるようになりました。きちんと結果が返ってきます。でも、Mac OS X 10.4 が現役な事を考えると、上記のような配慮は必要なんでしょうね。まだまだ。

0 件のコメント :

コメントを投稿