GUIを設計する【実践的Macintoshプログラミング解説】

印刷用表示 |テキストサイズ 小 |中 |大 |

CoreData版 Repeating Motif Generator の開発 Repeating Motif Wonderland CoreData 実践的 Macintosh プログラミング解説

LinkIconホーム

更新日 2009-05-24

モデルとビューを連動させる

GUIを設計する

 第一のプロジェクトで作ったGUIをアレンジしてリサージュ図形のパラメータを設定できる様にアレンジします。

 とりあえず全てのパラメータを編集できる様になったという段階でまだ洗練されていませんが、第二のプロジェクトとしてはここまでとしておきます。

編集結果

2ndGUI.png 第一のプロジェクトで作成したGUIをアレンジして、以下のようにしてみました。変更点は以下の通りです。

  1. テーブルビューのカラムを増やした
  2. Resolutionに対応するテキストフィールドとスライダーを追加
  3. LissajousViewを追加
  4. OscillatorViewを一つ追加
  5. 発振器のパラメータを設定するビューを一組追加
  6. 発振器のパラメータを設定するスライダーを削除し一部置き換え

nibウィンドウ

 nibウィンドウ上のアイコンで設定を変えているのはNSArrayControllerのみです。名前をOscillatorsからLissajousに変えています。

nibWindow2.png

ArrayControllerAttributes.png Entity nameをOscillatorからLissajousに変えています。 

テーブルビューのカラム

resolutionColumnBinding.png OscillatorからLissajousになって表示項目が増えています。そこでカラムをコピー&ペーストで増やしました。 
 Resolutionのカラムは右の様にバインディングを設定しています。


XAmplitudeBinding.png X軸の発振器の振幅を表示するカラムは右の様にバインディングを設定しています。周波数はx.frequency、位相のずれはx.phaseLagです。Y軸のカラムはxをyに変更します。

Resolutionのスライダーとテキストフィールド

resolutionSliderBinding.png 追加したResolutionのスライダーは右の様にバインディングを設定します。テキストフィールドの設定も全く同じです。 

カスタムビューの設定

LissajousViewIdentity.png OscillatorViewをコピー&ペーストで三つに増やします。 そのうちの一つはLissajousViewにするので、Class IdentityをLissajousViewに変更します。


LissajousViewConnection.png controllerアウトレットをLissajousという名前のNSArrayControllerに接続します。OscillatorViewのcontrollerアウトレットも同様に接続します。


OscillatorViewIdentity.png 二つのOscillatorViewを区別する為に、Tool Tipを設定します。X軸のOscillatorViewは"x oscillator"、Y軸のOscillatorViewは"y oscillator"とします。肝心なのは最初の一文字なので、二文字目以降は何でも構いません。

発振器のパラメータを設定するビュー

amplitudeBinding.png X軸の発振器の振幅を表示するテキストフィールドは右の様にバインディングを設定しています。周波数はx.frequency、位相のずれはx.phaseLagです。Y軸のテキストフィールドはxをyに変更します。

 スライダーやステッパーの設定もテキストフィールドと変わる所はありません。