Learn Swift / サンプルプログラム Memo Pad 3
このコーナーでは、Swift による、Mac OS X アプリケーションの作成方法を、説明しています。
掲載開始日:2016年02月11日
最終更新日:2015年02月12日
home 目次 前へ 次へ mail
ArrayController
Memo Pad は複数のメモを管理します。このような場合は、Cocoa バインディグとして用意されている、ArrayController を使うと便利です。ナビゲータエリアで「Main.storyboard」を選択して、エディタエリアにストーリボードを表示させてください。そして、ライブラリエリアから、ドキュメントアウトラインへ「Array Controller」をドラッグ & ドロップします。これでプロジェクトに ArrayController が追加されました。
![]()
ArrayController と Model の接続
追加した「ArrayController」をドキュメントアウトラインで選択したまま、インスペクタエリアでアトリビュートインスペクタを選んでください。そして、Class Name に「Model」と入力して、エンターキーを押します。エンターキーを押すのは入力を確定させるためです。これで ArrayController と Model が接続されました。
![]()
ArrayController のメソッドの利用
Cocoa バインディングは、ObjectController や ArrayController のような、Cocoa バインディングとして用意されているコントローラオブジェクトを介して、ビューとモデルをバインド (bind、結ぶ) させる技術です。言い換えればビューとモデルを直結させていると言ってもいいかもしれません。しかしArrayController には、バインドさせる機能以外にも、便利なメソッドが多数用意されています。ここでは、それらのメソッドも利用します。Add ボタンから ArrayController へ接続線を延ばして、マウスボタンを離してください。
![]()
次に表示される Recieved Actions パネルで、「add:」を選択します。
![]()
同じようにして、Remove ボタンと「remove:」を、Back ボタンと「selectPrevious:」を、Next ボタンと「selectNext:」を接続してください。
ビューとモデルのバインド
では、ビューとモデルを ArrayController を介して、バインド (bind、直結) させます。次の図を参考にして、ドキュメントアウトラインで TextView を選択してください。
![]()
次にインスペクタエリアで、右から二番目のバインディングインスペクタ (Bindings inspector) を選びます。そして Value グループの Data 項目を開いて、Bind to にチェックを入れて、ArrayController を選びます。Controller Key には「selection」と入力して、Model Key Path には「note」と入力します。そして Continously Updates Value にチェックを入れてください。
![]()
テスト
この段階で一度、Memo Pad をテストします。実行ボタンをクリックしてください。Add ボタンをクリックすると、テキストビューにメモが追加されて編集できるようになります。Remove ボタン、Back ボタン、Next ボタンも、それぞれ機能していることを確認してください。
お疲れ様でした。
次のページでは、Memo Pad に、バインディング機能をさらに追加していきます。
無断転載禁止、リンクフリー Copyright 2016. vivacocoa.jp All right reserved.