質問

私のセットアップでは、私は、Macに接続されたボリュームのNSCollectionViewを持っています。 NSCollectionViewItemの閲覧のために私は、そのボリュームの内容をリスト内NSTableViewとNSBoxを持っています。

NSTableViewに/削除項目を追加しようとすると、

私の問題が来ます。 NSBoxは一度初期化されているようですので、一つだけNSTableViewがあります。私はIBOutletにreloadDataを呼び出し、それがすべてのテーブルを更新することはできませんNSTableView I内のデータを更新したいときに、この手段ます。

私はNSBoxのサブクラスでIBOutletを作成した場合、私はそれを経由して、それを呼び出すことはできませんので、それは、例えばnilでます。

私が持って来る最も近いは、その項目がもう存在しないので、私はのtableViewを取得しreloadDataを呼び出すことができるように、例外が発生せず、カラムの行にオブジェクトを返すコードの周囲に囲みA @try @catchによるものですこれは、特定のNSTableViewを更新しているようだ。

これに伴う問題は、アイテムが削除された場合は、テーブルの端にある、またはアイテムが追加された場合、それはすべての既存のアイテムを見ることができるように、例外が発生しないということである。

誰もがNSCollectionViewItemのビュー上のNSTableViewの経験がありましたか?どのようにテーブルを更新したのですか?

役に立ちましたか?

解決

独自のペン先に(そのNSTableViewで)NSBoxを入れてください。たびにコレクションビュー項目のビューとしてNSBoxことをペン先、セットをロードし、新しいコレクションビュー項目を作成し、NSBoxを解放します。

は、テーブルビューを供給するためとして、最も簡単な方法は、おそらくバインディングです。バインドコレクションビュー項目が表すモデルオブジェクトの異なるプロパティにテーブルビューの各列。おそらく、手段はコレクションビューの項目ごとに、それらのうちの1つを有する、とあなたはdeallocにリリースするよ配列、に追加され、当然のことながら、アレイコントローラを通過するとよいでしょう。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top