Interface Builder上の作業【実践的Macintoshプログラミング解説】

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

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

LinkIconホーム

更新日 2009-05-24

ウィンドウがリサイズされた時に、OscillatorViewとLissajousViewを連動させてリサイズする

Interface Builder上の作業

 EnclosureViewができたので、Interface Builderを使ってウィンドウ上に配置します。

OscillatorViewとLissajousViewを包み込む

embedObjectsInCustomView.png
 二つのOscillatorViewとLissajousViewを選択して、LayoutメニューからEmbed Objects In Custom Viewを実行します。


enclosureViewIdentity.png できたカスタムビューのクラスをEnclosureViewにします。


enclosureViewDidMade.png

 するとウィンドウはこんな感じになります。
 内部の三つのサブビューはいい加減に配置してありますが、awakeFromNibで再配置してくれるので問題ありません。


enclosureViewAutoSizing.png 肝心なのはAutoSizingの設定です。ウィンドウにあわせて伸び縮みする設定にします。

 EnclosureViewのサイズに合わせてサブビューを再配置するわけですから、これが固定サイズになっていては意味がありません。


enclosureViewConnection.png アウトレットの接続も忘れずに済ませておきます。
 xOscillatorView, yOscillatorViewというのはInterface Builder上で各ビューにつけた名前です。

動作確認

 予定通り、無事動きました。リサイズ中も滑らかに動き、縦横のセンタリングもできています。 

テーブルビューの横スクロールバーはいらない事に気づいたので外しました。

 旧バージョンではこのリサイズはコントローラオブジェクトが実行していたのですが、今考えるとスーパービューが実行した方が自然な気がします。

enclosureViewEffect.png

 後リサイズについて来れないのはウィンドウ下部の発振器のパラメータを決めるビューだけです。これは二組ありますが、発振器を選択できる様にして一組に減らしてしまいましょう。今は発振器が二つしかありませんが、将来は6個に増える予定なので切替式にするのは必須です。