Popupボタンで表示を絞り込む

2006年6月19日月曜日
自分用メモ。せっかくできても、書いておかないと忘れるので。

まず、こんなモデルを作りました。

モデル例

で、別画面でPopupボタンで、表示するものを絞り込む場合。

絞り込み例

試行錯誤した結果、以下のようにしたらできました・・・。
・PopupボタンのcontentにclassificationのArrayControllerのarrangedObjectをバインド
・同じくcontentValuesにclassificationのArrayContollerのarrangedObject.nameをバインド
・selectedValueに、"popup"をバインド
・AppDelegateに、BookのArrayControllerをoutletとして接続
・TableViewにはColumnごとにBookのArrayControllerをバインド

AppDelegateに以下を追加

kvc_accessor: popup
ib_outlets :book_arr

def popup=(value)
@search_name = value.to_s
variables = OSX::NSDictionary.dictionaryWithObject(@search_name, :forKey, "CLS")
temp = OSX::NSPredicate.predicateWithFormat("classification.name == $CLS")
pred = temp.predicateWithSubstitutionVariables(variables)
book_arr.setFilterPredicate(pred)
end

なんで3ペインのテーブルビューと同じようにできないのかさんざん悩みましたが、Selectedなんちゃらで返ってくるものがPopupとテーブルビューでは違うからなのですね。うー難しい。

0 コメント:

コメントを投稿