Posted: 2005.05.28 (Sat) by うちゃ in
プログラミング
ここからは、Cocoa Bindingを使ってエンティティと入力画面を接続する。
まずは、パレットからCocoa ControllersのNSArrayControllerを選び、ドキュメントウィンドウ(レイアウトウィンドウではない!)にドラッグ&ドロップする。
ドラッグしたら、名前のところをダブルクリックして、名前を”AlbumController"に変更する。さらにインスペクタのAttributeでMode:をEntityにしEntity NameにAlbumを入力する。
続いて、インスペクタをBindingsに切り替えて、ParametersのmanagedObjectContextを指定する。頭の三角をクリックすると、詳細設定が現れるので、Bind to:にFile's OwnerをModel key pathにmanagedObjectContextを選ぶ。同時に右上のBind欄にチェックが入るはずだ。もし入っていないようであればチェックを入れておこう。これで、データモデリングで作成したAlbumエンティティと、今ドキュメントウィンドウに入れたAlbumControllerとの間の接続が終わったことになる。
次はレイアウト画面上に置いた部品と、今作ったAlbumControllerとを接続する。最初はTableViewのTitleカラムを選ぶ。一旦テーブルをダブルクリックしてからTitle欄をクリックしよう。これで、カラムが選ばれた状態になるので、インスペクタのBindingsで接続の設定を行う。Valueの中にあるvalueの頭の三角をクリックしてBind to:にAlbumControllerをController Key:にarrenged Objectsを、Model Key Path:にtitleを設定する。Model Key Pathではリストから選べないかもしれないが、かまわずキーボードからタイプする。
それが終わったら、今度は右側だ。タイトルを入力するTextFieldをクリックして同じようにValusにBindingを設定する。さっきの指定とだいたい一緒だが、Controller Key:には今度はselectionを選ぶ。TableViewの時には一覧を表示するためにarrenged Objectsを選んでいたのだが、今度はテーブルで選ばれた一つだけを対象にしたいからselectionを選ぶわけだ。
Artist,Relese Date,ReviewについてもTitleと同じようBindingの設定を行う。Model Key Path:にそれぞれartist,releaseDate,reviewを指定する。これでAlbumエンティティの属性が画面上の部品と結びつき、編集や表示が出来るようになる。
ここまで終わったら、今度は追加と削除のボタンの設定を行う。Controlキーを押しながら「+」ボタンをクリックしてマウスをドラッグすると、ボタンから線が伸びてくるので、この線をドキュメントウィンドウにあるAlbumControllerに接続してマウスボタンを離す。インスペクタウィンドウはConnectionsに変わり、Action in AlbumControllerと表示されているはずだ。
ここで表示されたリストの中からadd:を選んでConnectボタンをクリックする。
同じように「ー」ボタンについてもAlbumControllerのremove:にConnectしよう。こうすることによって、ボタンが押された時にAlbumエンティティの新規追加と削除が行われる。
最後は「+」ボタン、「ー」ボタンの状態変化の設定だ。例えば「ー」ボタンはAlbumリストで何かが選ばれていない状態では動作しないようにしなければならない。そのための設定を行う。インスペクタのBindingsでAvailabilityのenabledを設定する。「+」ボタンはBind to:でAlbumContollerを選び、Controller Key:にcanAddを選ぶ。Module Key Path:には何も選択しない。これで、エンティティを追加できる時だけ「+」ボタンが有効になる。「ー」ボタンも同じようにController Key:にcanRemoveを選ぼう。
これで一通り設定は終わった。Interface BuliderのFileメニューからSaveを選んで、今までの設定をファイルに保存しておこう。
じゃあ、
プログラムを動かしてみようか。そう、もう最初に目標にしていたプログラムは出来てしまったのだ。Xcodeに戻って、プロジェクトウィンドウのビルドして実行ボタンをクリックすると、プログラムが作成されたあと、自動的に実行が始まる。(もし、エラーになるようだったら、どこかの設定が間違っていると思うので、最初に戻って間違いがないか順番に調べてみて欲しい)
「+」ボタンでアルバムが追加されるし、タイトルやアーティストを入力したりもできる。ファイルに保存することも出来るのだ。