Mac OS X 10.4 の Finder(10.4 以前でも?)では、alias list が使えなかった。alias list は Finder で定義されているクラス。これを使うとファイルやフォルダの参照を Finder の参照ではなく、alias 参照のリストで返してくれる。
tell application "Finder"
set curSelection to selection as alias list
end tell
いちいち as alias と型変換をしなくていいので便利なのだけど、Mac OS X 10.4 では選択されている項目がひとつだけだとエラーになって動かなかった。また、複数を選択していても alias 参照に変換してくれなかった。だから、Finder の選択項目を処理する時はわざわざ次のように繰り返しで alias 参照に変換していた。
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 件のコメント :
コメントを投稿