2

に別のものを追加Objectして、を呼び出します。ドキュメントを正しく読んだ場合、OutlineViewは、1行を追加し、それ自体を正しく再描画したことを認識できるはずです。しかし、代わりに何も起こりません。NSOutlineViewNSOutlineViewDataSource[myOutlineView noteNumberOfRowsChanged]

私がそれを呼び出す[myOutlineView reloadData]と、それは機能しますが、ドキュメントによると、(すべてのデータをリロードするため...当たり前)reloadDataよりもはるかに高いオーバーヘッドがありますnoteNumberOfRowsChanged

私はバインディングを使用していません、私はNSOutlineViewDataSource自分自身を供給します。

誰かが私が間違っていることを知っていますか?

4

1 に答える 1

1

reloadData: ドキュメントから:

スクローラーを更新するだけの場合は、noteNumberOfRowsChangedを使用します。行のセットの高さが変更された場合は、noteHeightOfRowsWithIndexesChanged:を使用してください。

私には、そのように聞こえnoteHeightOfRowsWithIndexesChanged:ますが、新しく追加されたオブジェクトがビュー内に表示されることを保証するだけです。

ドキュメントのディスカッションセクションでは、単一の行を更新reloadData:する方法についても説明しています。しかし、新しいオブジェクトを追加する場合は、それが唯一のオプションのようです。reloadData:

于 2011-05-06T18:01:39.357 に答える