NSWindow在点击,调整大小等之前不会被绘制

时间:2011-03-16 13:27:41

标签: objective-c cocoa macos nswindow nscollectionview

我有一个窗口,其中包含通过Interface Builder创建的NSCollectionView。有一个NSArrayController绑定到CoreData后备存储,它在启动时通过触发异步请求来填充。 NSCollectionView与NSArrayController等的绑定似乎都已到位;但是,窗口显示并且是空白的,直到单击窗口,调整大小等以强制重绘窗口。

以下是我尝试过的一些没有任何明显变化的事情。 (这些在NSWindowController类中)

1)使用KVO监控CoreData提取的完成时间。在这一点上,我尝试了以下任何一项:

[collectionView setNeedsDisplay:YES];
[[self window] setViewsNeedDisplay:YES];
[[self window] flushWindowIfNeeded];

2)添加了NSProgressIndicator,在启动时隐藏NSCollectionView,然后在加载完成时(再次通过监视KVO),我隐藏进度指示器并显示集合视图。

任何人都有关于我在这里做错的提示/线索吗?

似乎把事情搞砸了。

1 个答案:

答案 0 :(得分:0)

感谢朋友在Twitter上看到了这个链接,我有一个解决方案。一旦我的KVO触发添加呼叫:

[arrayController fetch:self];

似乎把事情搞砸了。