2009-06-12 2 views
2

私が書いているアプリケーションについては、Applescriptが最適な方法であると思われる他のアプリケーションの項目にアクセスする必要があります。私はAppscriptフレームワークを使用していましたが、これはうまくいきました。なぜなら、Applescriptがしばらく時間がかかっていたときに、私のスレッドにスレッドを許可して、アプリケーションをロックさせないからです。しかし、今私は自分のアプリケーションを64ビット互換にしようとしており、Appscriptフレームワークは64ビットをサポートしていないようです。アプリケーションをロックしないでCocoaでApplescriptを使う良い方法はありますか?Applescriptココアアプリケーションの中に

--firen

答えて

6

SBApplicationが動作するはずのように思えるが、私は前にそれを使用していません。 @cocoadevcentralによれば

SBApplication:Objective-Cの代わりにAppleScriptを有するクロスアプリケーションスクリプト呼び出しを行うために使用します。例:現在のiTunesトラックを取得する。ここで

ドキュメントからの抜粋です:

SBApplicationクラスは、スクリプト可能なアプリケーションにAppleイベントを送信し、応答におけるAppleイベントを受け取るために、Objective-Cのプログラムを有効にするメカニズムを提供します。それによって、そのプログラムがアプリケーションを制御し、それとデータを交換することが可能になる。スクリプティングブリッジは、Appleイベント記述子とCocoaオブジェクトの間でデータ型を橋渡しすることによって機能します。

SBApplicationにはAppleイベントを手動で送信して処理するメソッドが含まれていますが、これらのメソッドを直接呼び出す必要はありません。代わりに、SBApplicationのサブクラスはAppleイベントの送信を自動的に処理するアプリケーション固有のメソッドを実装しています。

たとえば、現在のiTunesトラックを取得する場合は、動的に定義された動的サブクラスのcurrentTrackメソッドを使用して、Appleアプリケーションの送信の詳細を処理しますより複雑な、低レベルの代替:

[iTunes propertyWithCode:'pTrk']; 

あなたはNSAppleEventDescriptorクラスを使用することを検討して、手動でAppleイベントを送信する必要がある場合。

2

Blaenkが述べたように、あなたが大規模な配列を反復処理する必要がある場合、それはやや非効率的な証明することができますが、スクリプティングブリッジが良く、移動するための方法かもしれなど

ココアでAppleScriptを実行する最も簡単な方法は、NSAppleScriptを使用しています。

Appleにはかなり良い例がありますが、これは私が似たようなことをする必要があるときに役に立ちました。あなたが見たいかもしれない3つの記事があります。それらはすべてサンプルコードを含んでいます。私はいつも非常に便利です。

  • 私はより多くを投稿することができないとして、私は完全なURLと要旨を作成し
  • NSAppleScriptのTechnote /例

スクリプティングブリッジとスクリプティングブリッジ

  • パフォーマンス&の最適化を使用してのいくつかの例1つのリンクよりも、初心者でもすべてでもあります。

    http://gist.github.com/130146

  • 1

    Appscriptフレームワークは、64ビットをサポートしていないように思えます。

    Xcodeプロジェクトで正しいアーキテクチャとSDK(64ビットで10.5必要)を設定してください。特定の問題がある場合はバグレポートを提出してください。

    関連する問題