2009-07-19 5 views
0

NSPopUpButtonCellsの列を含むNSTableがあります。私はテーブルの別の列の内容に基づいてNSPopUpButtonCellをフィルタリングしたいと思います。これはかなり簡単な解決策が必要なような気がしますが、私が思いつくような解決策は非常に複雑です。私の最大の問題は、アプリケーションが実行されているときに、NSPopUpButtonCellをクリックすると、メニューが表示される前にアクティブになる何かを見つけることができず、フィルタが開始されるようです。私はtableViewSelectionIsChangingのようなものを試してみました:しかし、それらはすべてPopUpButtonのリストがアクティブになった後にアクティブになるようです。NSTableViewのNSPopUpButtonCellでのデータのフィルタリング

すべてのヘルプははるかに高く評価されます。

答えて

1

これには簡単な解決策があることが明らかになりました。 NSArrayControllerを使用してテーブルの行を制御していました。各行はInputCellクラスのオブジェクトでした。 InputCellクラスにNSArrayを返したメソッドを追加しました。このメソッドは、セルのフィルタ条件に応じて[self valueForKey:]を使用して別の配列を作成しました。次に、バインディングを使用してNSPopUpButtonCellのコンテンツをNSArrayControllerを通じて配列にバインドすることができました。

0

tableView:willDisplayCell:代理人メソッドでは、セルに使用しているメニューのコピーを作成したり、適切にフィルタリングしたり設定したりして、セルのメニューとして設定することができます。それは望ましい効果を達成するはずです。

関連する問題