我有一個NSImageCell
表列,其valuePath
綁定到我的對象通過NSArrayController
提供的路徑。從NSImageCell獲取顯示的圖像
我的NSTableViewDelegate
實現了-tableView:heightOfRow:
方法,以便具有可變的行高。我需要根據上述列中顯示的圖像尺寸計算行高。
現在,我得到可怕的表現,但是,因爲我打電話[[NSImage alloc] initWithContentsOfFile:<path>]
每次迭代。有什麼方法可以加載每個NSImageCell
已經檢索到的圖像表示?
我對使用valuePath
綁定所展示的性能感到滿意,並且寧願不自行緩存每個圖像,因爲它們中會有很多,每個圖像都有些大。
我試過NSTableColumn
方法-dataCellForRow:
,聽起來很完美,除了返回的單元格返回一個objectValue
似乎是數據加載的最後一行。
更新(解決方案,不合格)
我想出了一個近似解(同時貼在下面),但似乎笨拙(我已經看到它失敗隨機的,不可複製的時間),我我仍在尋找更好的解決方案。
我使用-tableView:willDisplayCell:forTableColumn:row:
委託方法來填充可變字典,其中[[cell objectValue] size]
(圖片的大小)與所表示的對象的唯一ID綁定。然後,在-tableView:heightOfRow:
的電話中,我正在查找這本詞典的封面。數據加載完成後,我需要撥打[tableView noteNumberOfRowsChanged]
,否則數據的初始屏幕字典不能正確填寫。
看起來像你在更新,因爲我在回答。 :P –
是的,這有趣。 – Dov