强制NSBrowser重新加载

Mat*_*att 3 macos cocoa

我是Cocoa的新手,如果这没有意义,请道歉.

我正在使用一个NSBrowser从Web服务获取一些数据的Finder样式列视图.该NSURLConnection结果异步返回.

我的问题是浏览器在应用程序启动时正确调用其委托填充列,但是一旦获得数据,我就无法重新加载.

我试过reloadDataForRowIndexes,noteHeightOfRowsWithIndexesChanged,addColumn,reloadColumnloadColumnZero,但他们都不触发浏览器调用numberOfRowsInColumn的委托作为我希望(看到在启动时).

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

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

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

计划C可能会延迟浏览器从nib文件加载,直到数据准备就绪,但我在下一个节点遇到类似的问题,除非我提前将所有节点加载到列中.

小智 5

[browser reloadColumn:0]不适合我,但是[browser loadColumnZero].