2011-09-30 55 views
3

嘗試在10.7中使用reloadDataForRowIndexes:columnIndexes:作爲我的觀點NSTableView。儘管重繪了問題。如果我編輯該對象並調用reloadDataForRowIndexes:columnIndexes:並稍後刪除該對象,則最終得到一個靜態行視圖。(基於視圖)NSTableView的reloadDataForRowIndexes:columnIndexes:不刪除行視圖?

docs warn

對於基於視圖的表視圖,reloadDataForRowIndexes:columnIndexes: 將下降的觀點,細胞的錶行中,但不是NSTableRowView 實例。

不知道我該如何告訴表視圖來刪除行視圖。如果我使用reloadData一切正常,但顯然這是一個更重的方法來調用並導致選擇損失。

有什麼想法?

更新:添加了演示應用程序來演示該錯誤。可以在GitHub上找到。它有解決方法的代碼,但無論如何,我仍然想找到答案。

https://github.com/zorn/NSTableView-ViewBased-ReloadRowBug

回答

2

我想我解決了這個錯誤。事實證明,在嘗試任何種類的reloadDataForRowIndexes:columnIndexes:之前,你必須小心地結束[self.tableView endUpdates]

我會追加我的雷達,請求一個正式的控制檯在試圖做這樣的事情時記錄下來。

GitHub項目已更新。

相關問題