2011-04-13 136 views
3

我是新来的可可如此道歉,如果这没有意义。强制NSBrowser重新加载

我使用的是NSBrowser获得从Web服务的一些数据的搜索式的列视图。 NSURLConnection结果异步返回。

我的问题是,浏览器正确调用其委托来填充列的应用程序启动的时候,但我不能让重装一次我已经得到的数据。

我试过reloadDataForRowIndexesnoteHeightOfRowsWithIndexesChangedaddColumnreloadColumnloadColumnZero,但它们都没有触发浏览器调用numberOfRowsInColumn的委托作为我希望(看到在启动时)。

我知道浏览器委托是好的,因为我可以看到它在启动时被调用。

是否有另一种方式要求浏览器刷新,还是我需要尝试另一种方法?

计划B将在另一个线程上触发urlConnection并阻止浏览器。我不热衷于阻止UI线程,因为我担心这会导致一个沙滩球。

C计划可能会推迟从笔尖文件浏览器加载,直到数据准备好了,但我也有类似的问题,下一个节点,除非我加载所有在期待早日节点列。

回答

4

[browser reloadColumn:0]是正确的路要走。这只是工作,没有解决方法需要。如果这不适合你,你的错误在别处。

+0

那么这相当大地减少了我的搜索半径!事实证明,我的本地浏览器引用没有像我期望的那样被Interface Builder设置,但它被传递给了委托方法。干杯。 – 2011-04-14 11:19:08

+0

这是由在头文件中重命名IBOutlet引起的。我已经将NSBrowser链接到新名称,但没有删除旧链接。另外,这在构建警告中显示,但仅在干净重建时显示。 – 2011-04-14 11:28:31

2

[browser reloadColumn:0]并没有为我而[browser loadColumnZero]工作。