私のセットアップでは、Macに接続されたボリュームのNSCollectionViewがあります。NSCollectionViewItemのビューには、そのボリュームのコンテンツを一覧表示するNSTableViewを含むNSBoxがあります。
NSTableViewにアイテムを追加/削除しようとすると、問題が発生します。NSBoxは一度初期化されたように見えるため、NSTableViewは1つだけです。これは、NSTableView内のデータを更新する場合、IBOutletでreloadDataを呼び出して、すべてのテーブルを更新させることができないことを意味します。
NSBoxのサブクラスにIBOutletを作成すると、インスタンスではnilになるため、それを介して呼び出すことはできません。
私が最も近いのは、列の行でオブジェクトを返すコードの周りに@try @catchを囲むことです。そのアイテムが存在しないために例外が発生するため、tableViewを取得してreloadDataを呼び出すことができます。その特定のNSTableViewを更新します。
これに伴う問題は、削除されたアイテムがテーブルの最後にある場合、またはアイテムが追加された場合、既存のすべてのアイテムを表示できるため、例外が発生しないことです。
NSCollectionViewItemのビューでNSTableViewを使用した経験はありますか?テーブルをどのように更新しましたか?