ProjectBuilder/Interface Builder, AppleScript, AppleScript Working
作成日
2002/1/5 19:30:23
作成者
新居雅行
Mac OS XのDeveloper Toolsに搭載されたAppleScript Studioを使った簡単なアプリケーションを前回の記事では紹介した。しばらくは、ウインドウに配置したコントロール類をAppleScriptでコントロールする方法を紹介して行くことにしよう。まずはボタン類で使う機会の多い機能を紹介しよう。 前回にも紹介したように、Interface Builderを使ってユーザインタフェースを作成し、各コントロールのイベントに対応する部分のプログラムをAppleScriptで作成をすればよい。こうしたイベントは、いずれにしても、ウインドウないしはその中のコントールから発生する。そのとき、イベントハンドラにはイベントが発生したオブジェクトへの参照が得られるので、何らかの方法で、そのコントロールが配置されているウインドウへの参照が得られる。それをもとに、ウインドウ内の各コントロールを参照できるのである。コントロールが所属するウインドウを参照するにはwindowプロパティを使う。また、Interface BuilderではAppleScriptでの名前を指定することができるので、その名前が「button1」ならそれを使って、たとえば、Control "button1"として、特定のボタンを参照することができる。id番号などでの指定など他にコントロールを指定する方法があるのだが、固定的なユーザインタフェースなら、それぞれのコントロールに名前を付けて、その名前で参照するのがいちばん確実で分かりやすいだろう。また、たとえばプッシュボタンならButtonクラスなど、コントロールの種類ごとにクラスが定義されているが、それらはControlクラスを継承している。もちろん、Button "button1"として参照してもいいのだが、コントロールはすべてControlというクラス名で参照してもかまわない。コントロール名に種類が分かりやすい名前をつけておけば混乱はしないだろう。
-- ボタンをクリックして呼び出されるハンドラ on clicked theObject set targetWindow to window of theObject if state of control "b1" of targetWindow is 0 then -- チェックボックスがオフのときの処理 else -- チェックボックスがオンのときの処理 end if end clicked