私は標準の Cocoa アプリケーションを作成しており、AppleScript サポートの実装を開始したばかりです。testprop
最上位のアプリケーション スクリプト クラスに対して呼び出されるプロパティを定義して実装しましたが、それにアクセスすると問題なく動作します。アプリのインスタンスを起動し、スクリプト エディタで次の AppleScript を実行すると、期待どおりの出力が得られます。
tell application "MyApp"
testprop
end tell
ただし、アプリが実行されていないときにScript Editor でこれとまったく同じ AppleScript を実行すると、このプロパティの最後の既知の値が返され、その後の呼び出しでも引き続き返されます。GUI のどこにもアプリのインスタンスが開始されていません。
これに気づいた後"ps xawww | grep MyApp"
、シェルを実行すると、アプリのメイン実行可能ファイルを使用してプロセスが作成され、次のような引数が付けられたことが通知されました: -psn_0_323663
(このプロセスが開始されるたびに最後の番号が変わります -- AppleScript (とりわけ) がプロセスを追跡および制御するために使用するのは「プロセスシリアル番号」であると私は推測しています)。
ここで何が起こっているのですか?これが起こらないようにするにはどうすればよいですか (つまり、AppleScript の「tell」コマンドが実行されたときに、完全で適切な GUI 対応インスタンスとしてアプリを起動します)。
編集:
上記は私のラップトップでのみ発生するようです。Mac Mini でまったく同じことをしようとすると (OS のバージョンはどちらも同じです: 10.5.8)、次のエラー メッセージが表示されます。
$ osascript -e "tell application \"MyApp\"" -e "testprop" -e "end tell"
26:40: execution error: The variable testprop is not defined. (-2753)