追記
メモ:SearchFieldの履歴についてだって.Cider House » NSSearchFieldとIBこれってセレクターを出せるってだけか…セレクタのItemや動作等については自分で実装するわけね.
http://ciderhouse.ivory.ne.jp/wp/mac/cocoa/cocoa3/Search Fields
http://developer.apple.com/documentation/Cocoa/Conceptual/SearchFields/SearchFields.pdf
p.13のConfiguring a Menu Templateの項参照.
Listing 1が実装部.(全部が全部実装する必要はないみたい.)
という疑問でCore Dataのモデルが自動生成したインターフェイスを調べてみた.
自動生成についてはこちら.CoreData:データモデルをIBにd&dすると自動的にUIができる
http://edotprintstacktrace.blogspot.com/2007/10/coredataibd.html
秘密(w)はNSSearchFieldのBindingだった.やり方としてはこんな感じ.
・Searchの項,PredicateのBind to:にチェックをいれる.
・テーブルのControllerをセレクタから選ぶ.
・Predicate Formatに評価式を書く.
・(Foo.description contains[c] $value) // FooはNSNumber
・(Bar contains[c] $value)
・Display NameにSearchFieldのセレクタに書く文字列を入れる.
って感じ.
必要あればPredicate2 ...をいれる.
その他Predicateの書式については以下.Using Predicatesの項あたりが便利Predicate Programming Guide
http://developer.apple.com/documentation/Cocoa/Conceptual/Predicates/predicates.html
そうするとこうなる.
また各カラムのソート機能がある(フィールドヘッダをクリックした時の動作(右寄りに矢印がでる)).
で,これはColumnのBindingに設定があった.
・Creates Sort Descriptor にチェックをいれる.
・また,Table ViewのBindingのTable Contentの項の
いずれもバインディングしてはいけない.
・Table ColumnのValueのバインディングのみで
表を作成しておくこと(普通そうだよね…).
・以前の行選択を検出するサンプルでは
TableView/TableContent/Content, Selection Indexesを
バインディングしており
これは無駄かつSortができないので有害.
…ごめんなさい.
(2008/1/7付けでSelectedRowInTableView.zip を修正.)
でできたサンプルがこちら.
サンプル
http://y30.net/pg/cocoa_prj/Sample_SearchFieldAndSort.zip
0 件のコメント:
コメントを投稿