我有一个切换来更改字体属性。在我的NSOutlineView中,我调用ReloadData以重新渲染所有内容。但是,如何强制NSCollectionView重新渲染。我试过了

cvReader.NeedsLayout= true;
cvReader.Layout();

cvReader.NeedsDisplay = true;
cvReader.Display();


无济于事。任何提示,不胜感激。

更新。我也试过

cvReader.NeedsDisplay = true;
cvReader.Window.ViewsNeedDisplay = true;
cvReader.Window.FlushWindowIfNeeded();


以及再次分配内容。感觉项目视图已缓存且未重新生成。也许有一种方法可以清除项目视图缓存?

最佳答案

事实证明,可以通过设置ItemPrototype来刷新NSCollectionView项目视图,例如,

ItemPrototype = new SomeViewController()


这将导致重新创建所有现有视图。

关于macos - 相当于ReloadData用于NSCollectionView重绘项目 View ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22947063/

10-09 16:17