Learn Swift / viva Cocoa / viva Cocoa


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 に、バインディング機能をさらに追加していきます。


home  目次  前へ  次へ  mail


無断転載禁止、リンクフリー
Copyright 2016. vivacocoa.jp All right reserved.