objective-c - NSWindow 在单击、调整大小等之前不会绘制

标签 objective-c cocoa macos nswindow nscollectionview

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

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

1) 使用 KVO 监视 CoreData 获取何时完成。此时我已经尝试了以下所有方法:

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

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

有人对我在这里做错了什么有提示/线索吗?

似乎让事情开始运转。

最佳答案

感谢一位 friend 在 Twitter 上看到了此链接,我有了一个解决方案。一旦我的 KVO 触发,添加一个调用:

[arrayController fetch:self];

似乎让事情开始运转。

关于objective-c - NSWindow 在单击、调整大小等之前不会绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5325980/

相关文章:

objective-c - 简单的 iOS 代码行解释

objective-c - 使用 OpenGL ES 绘制地球

iphone - Webview 不会返回到原始页面

iphone - 如何从 objective-c 中的html页面检索特定数据

objective-c - 如何在代码中接收 slider 的当前值?

objective-c - 是否有与 +initialize 对应的类拆卸?

swift - 将文件从应用程序包复制并保存到桌面/其他位置

ruby - 用指向 ruby​​1.9 的链接替换 ​​ruby​​,安全吗?

HTML 资源在 Debug模式下正确加载,而不是在 Release模式下正确加载

macos - Firefox 在 OS X 上的什么地方存储 Cookie?