タイトルAppleScript Working》AppleScript Studioで作るMac OS X“ネイティブ”アプリケーション(2)カテゴリーProjectBuilder/Interface Builder, AppleScript, AppleScript Working
作成日2001/12/20 17:58:19作成者新居雅行
ここからAppleScript特有の設定を行う必要がある。まずは、ToolsメニューのShow Info(Command+shift+I)を選択して、情報のパレットを開く。そして、ウインドウ上にあるNSTextFieldの一つを選択した。情報パレットの上部にあるポップアップメニューからAppleScriptを選択する。すると、Nameというボックスがあるので、そこに名前を入れる。AppleScriptの側ではこの名前を手がかりに、このNSTextFieldを参照することができるのである。

◇AppleScriptで使うコントロールにはNameで名前を設定
 

なお、4つあるNSTextFieldには上から順番に、rowNum、colNum、height、widthとNameを設定した。
ボタンについても同様に情報パレットで設定を変えよう。ボタン名をAttributesのTitleで設定する。そして、AppleScriptの設定では、Event HandlersにあるActionのclickedにチェックを入れる。さらに、ScriptではApplication.applescriptにチェックを入れる。これにより、ボタンをクリックしたときにイベントを拾うようになるが、そのイベントに対応するハンドラを、Application.applescriptというソースに記載するということを指定したのである。情報パレットの下にあるボタンを使えば、ソースを新たに作ることもできるし、ソースをProject Builderで編集にかかることもできる。

◇ボタンの名称を変更した
 
◇ボタンのAppleScript属性はイベントを指定する
 

以上が、Interface Builderでの操作のポイントである。情報パレットのAppleScriptのところで、Nameの設定を行い、応答するイベントを指定し、さらにイベントハンドラの書く場所を指定するというわけだ。もちろん、使わないイベントは特に指定はしなくてもいい。また、プログラムで参照しないコントロールは特にNameを使わなくてもいい。
ここではボタンをクリックしたときのイベントに対応するハンドラを作成したが、Project Builderでそのハンドラを見てみると次のようになっている。on clickedで始まっているが、引数theObjectというものがある。このtheObjectには、クリックされたボタンへの参照がセットされている。たとえば「view 5 of window 1」といったような参照となっているようだが、いずれにいても、メッセージの送り主が引数にあるということだ。

◇作成されたハンドラ
 

こうしてハンドラにプログラムを書いて行く。プログラムの内容については後でまとめて説明をしよう。ここではプログラミング作業だけをまずは見て行く。すでにどぎつくカラーリーングされているのであるが、これはAppleScript Studioをインストールすると、Script Editorも含めてこの色使いになる。なお、色使いについては、Script Editorの「AppleScriptフォーマット」で変更できるが、反映させるにはProject Builderを再起動しないといけない。

◇プログラムを打ち込んだ(プログラムにはまだ間違いがある)
 

ここで構文チェックをしたいのだが、ソースのウインドウの上部右端に4つ並んでいるボタンのうち、いちばん左のものが構文チェックである。エラーがあるとシートで表示する。

◇ソースの構文チェックを行う
 

構文に間違いがないと、きれいに(ちょっとどぎつく)カラーリングされる。ソースウインドウでは行は折り返されるのがちょっと見づらくなるが、ここではご容赦いただきたい。とにかく、NSTextFieldで入力したパラメータを使って、InDesignで表を作成させてるプログラムが出来上がった。

 

あとは通常とおり実行すればいい。ツールバーにあるボタンないしはCommand+Rが一般的だろう。そうすると、まずは設計した通りにウインドウが表示される。そして、テキストフィールドに数値を入れて、「表を作成」ボタンをクリックすると、InDesignで表が作成される。InDesign側では、たとえばテキストフレームを作っておいて、その中に挿入ポイントがある状態ということをとりあえず仮定している。

◇プログラムが実行され、メニューやウインドウが定義通りにできている
 
◇数値を指定した
 
◇InDesignでは表が埋め込まれた(あれ?変だぞ〜)
 

なんとなく動いているが、サイズはOKだとしても、行数や列数が指定通りになっていない。というわけで、デバッガで動作を見てみよう(ちょっとわざとらしいが)。起動したアプリケーションをまず終了させ、適当にブレークポイントを設定する。ソースウインドウの左側の部分をクリックすると、楔型のブレークポイントマークが入る。そしてデバッグ実行のボタンをクリックするか、Command+Yでデバッグ実行を行う。

◇ブレークポイントをAppleScriptのプログラム中に設定した
 

プログラムが実行され、テキストフィールドに適当に値を入れて、ボタンをクリックすると、しばらくするとブレークポイントでプログラムが停止する。そして、そのときのグローバル変数やローカル変数がProject Builderですぐに参照できるようになっている。(ここでは行数や列数として文字列を与えているので、表を作成するプロパティとして不適切であると言うことが分かる。つまり、数値にしてやればいいのである。)

◇ブレークポイントで停止するとその段階での変数値がすぐに参照できる
 
(この項続く)
関連リンク