2011-04-13 193 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]工作。