設定ウィンドウの続き。
アプリケーションを起動するとアイコンはまだ薄くなっていてクリック出来ない。これはクリックした時の動きをどうするのか定義していないから。早速定義する。定義はコーディングだ。
ソースファイルを一つ追加する。名前はPreferencesWindow.applescript。




ソースはこんな具合。
script PreferencesWindow property parent : class "NSWindow" on switchView_(sender) end switchView_ end script

このswitchView_()ハンドラが設定ウィンドウツールバーのアイテムに関連付けるアクションになる。
このソースもMainMenu.xibでオブジェクトを作り割り当てるといった作業になるけど、その前にこのソースの親クラス定義となっているproperty parentの内容に注意。親クラスはNSWindowになっている。というか親クラスにした。設定ウィンドウに関する定義はここに書きたかったから。ウィンドウのオブジェクトであるNSWindowに機能を追加する、というイメージ。
細かく説明を書くより実際にやってみる。論よりラン。
設定ウィンドウのオブジェクトを選択してIdentity Inspectorを開いてClassがNSWindowになっているのを確認。


ここをPreferencesWindowに変更。

WindowがPreferences Windowに変更されていれば設定が正しく出来ている。
Preferences Windowを右クリック。メニューの中にswitchViewがあるのでそれをツールバーアイテムに関連付ける。




関連付けが出来たらこれでツールバーは動作可能になってクリックできる。アプリケーションを起動して確認。

ツールバーアイテムが選択状態になるのを確認できた。
もう一つ機能を定義しよう。設定ウィンドウはエスケープキーでウィンドウを閉じることが出来る。これを記述。PreferencesWindowにcancelOperation_()ハンドラを
記述する。

このPreferenceWindowはNSWindowを親とするオブジェクトなのでウィンドウに関する操作を記述できる。
tell me to は自身に対してメッセージを送るということ。送るメッセージは|close|()。close()ではエラーとなる。closeはAppleScriptの予約語だから。予約語をメッセージと区別する為に|(パイプ)で括る必要がある。
記述出来たらエスケープキーで設定ウィンドウが閉じるのを確認。問題なく閉じた。
今回はこれまで。ツールアイテムをクリックできるようになったので次回は設定ウィンドウの中身を作って行く。
0 件のコメント:
コメントを投稿