|
|
Log In | Not a Member? |
Contact ADC |
| < Previous PageNext Page > |
AppleScriptは、多くのMacintoshパワーユーザが慣れ親しんでいるスクリプト言語およびプロセス間通信テクノロジーです。AppleScriptスクリプトをコンパイルして実行すると、スクリプトはアプリケーションにコマンドを送ることでアプリケーションを制御し、場合によっては結果としてアプリケーションからデータを受け取ることがあります。
アプリケーションをAppleScriptコマンドのターゲットにするためには、アプリケーションをスクリプト対応にする必要があります。スクリプト対応アプリケーションは、AppleScriptによって生成されるプロセス間メッセージ(アップルイベントと呼びます)に応答して、自身の動作とデータを提供します。実稼動品質のアプリケーションは、一般にスクリプト対応にする必要があります。自分のアプリケーションで実行できる機能を、可能な限り多くのユーザ(スクリプト作成者やAutomatorアプリケーションのユーザなど)が利用できるようにすることが目的です。
Cocoaではスクリプト対応アプリケーションのランタイムサポートが提供されています。特定のアプリケーションのスクリプト対応機能の情報が初めて必要になったとき、Application Kitはその情報をロードし、サポートされているコマンドに対応したアップルイベントハンドラを自動的に登録します。登録してあったコマンドに対応するアップルイベントをアプリケーションが受信すると、Application Kitはスクリプトコマンドオブジェクトをインスタンス化し、アプリケーションのスクリプト対応機能情報から取得した情報を使用して初期化します。この情報によって、コマンドの対象となる、アプリケーション内のスクリプト対応オブジェクトを見つけることが可能になります。次に、Application Kitはコマンドを実行し、対象のスクリプト対応オブジェクトは要求された処理を実行します。これらのオブジェクトが値を返す場合、Application Kitはその値をアップルイベントとしてパッケージ化し、元のスクリプトに返します。
このランタイムサポートを有効活用するためには、アプリケーションをスクリプト対応にする必要があります。この作業はいくつかの要素で構成されています。
アプリケーションのスクリプト対応機能の情報を提供する必要があります。
スクリプト対応機能の情報は、対象とするアプリケーションとそのオブジェクトに対してスクリプトの中で使用できる用語を規定するものです。また、アプリケーションにおけるこの用語に対するサポートの実装方法に関する情報も含まれます。スクリプト対応機能は2つの形式のいずれかで提供します。推奨される形式はXMLベースのスクリプト定義です。ファイルの拡張子が.sdefであることからsdef形式とも呼ばれます。2つ目は古い形式で、スクリプトスイートファイルとスクリプト用語ファイルという、プロパティリストファイルのペアで構成されます。
どちらの形式も同じスクリプト対応機能情報を格納します。これらは、スクリプトの中で使用する用語を定義し、アプリケーションのスクリプト対応オブジェクトを記述します。具体的には、AppleScriptおよびCocoaでAppleScriptコマンドを実行するために必要となる、クラス、コマンド、定数その他の情報を指定します。
スクリプト対応機能のサポートに必要なクラスやメソッドをすべて実装する必要があります。
Cocoaでは、共通のコマンドやその他の用語(get、set、window、document)のサポートがStandardスイートに組み込まれています(AppleScriptでは、関連する操作群に対応した用語がスイートとしてまとめられています)。また、Cocoaでは、Cocoaテキストシステムのオブジェクトを対象としたスクリプト対応操作用のTextスイートも提供されています。StandardスイートやTextスイートに定義されているコマンドを使用しても実行できないスクリプト対応操作がアプリケーションにある場合は、別途コマンドクラスを定義する必要があります。また、各スクリプト対応クラスごとにオブジェクト指定メソッドを実装する必要もあります。このメソッドは、クラスのオブジェクトを記述し、アプリケーションのオブジェクトの格納階層の中でそのオブジェクトを探し出します。
アプリケーションのモデルと(可能であれば)そのコントローラオブジェクトを適切にデザインする必要があります。
スクリプト対応のCocoaアプリケーションは、Model-View-Controller (MVC)デザインパターンに従ってデザインする必要があります。このデザインパターンでは、アプリケーションのオブジェクトが、割り当てられた役割ごとに振り分けられます。アプリケーションのモデルオブジェクトは、通常はスクリプト対応機能を提供するオブジェクトです(ただし、コントローラオブジェクトをスクリプト対応オブジェクトにすることができる場合もあります)。アプリケーションのスクリプト対応クラスは、キー値コーディング(KVC)に準拠する必要があります。KVCは、キーを使用してオブジェクトプロパティを間接的に取得および設定できるようにするしくみです。コマンドオブジェクトは、実行時にKVCを使用して、操作対象のスクリプト対応オブジェクトを見つけます。
KVCに準拠するためには、プロパティの名前(デフォルトではプロパティ自身のキーでもあります)を、プロパティを保持するインスタンス変数に、またはプロパティの取得と設定を行うクラスのアクセサメソッドに、組み込みます。スクリプト対応オブジェクト(通常はモデルオブジェクト)のクラスを設計する際には、アプリケーションのスクリプト対応機能情報の中で、それらのオブジェクトに対応するキー、オブジェクトのスクリプト対応プロパティ、および、オブジェクトに格納される要素クラスも、それぞれ指定します。
KVCのベースとなっているデザインパターンの詳細については、“「オブジェクトモデリング」”を参照してください。
スクリプト対応機能のサポートとは別に、Cocoaでは、アプリケーションがシステム上のほかのプロセスから受け取る特定のアップルイベントが自動的に処理されます。“「アップルイベントの処理」”では、アップルイベントと、Cocoaにおけるそれらのイベントの処理方法について説明しています。
| < Previous PageNext Page > |
Last updated: 2006-05-23
|
Get information on Apple products.
Visit the Apple Store online or at retail locations. 1-800-MY-APPLE Copyright © 2007 Apple Inc. All rights reserved. | Terms of use | Privacy Notice |