setObjectValue:nil未调用删除NSTableCellView

时间:2014-07-29 14:15:16

标签: nstableview nstablecellview

我使用基于视图的NSTableView和绑定来显示我的对象的内容。

当我删除其中一个时,tableView通过删除该对象的单元格来反映更改。

问题是NSTableCellView没有收到带有nil或其他对象的setObjectValue:因此对象referenceCount没有递减,我的对象永远不会释放。

有没有办法覆盖tableView以强制调用setObjectValue:何时缓存deletedRows?

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

我刚刚在这里找到了解决方案。

https://devforums.apple.com/message/575883#575883

如果链接失败,解决方案是手动设置,使用以下方法

- (void)tableView:(NSTableView *)tableView didRemoveRowView:(NSTableRowView *)rowView forRow:(NSInteger)row NS_AVAILABLE_MAC(10_7);
{
    for (NSInteger columnIndex = 0; columnIndex < [rowView numberOfColumns]; columnIndex++) {
       [[rowView viewAtColumn:columnIndex] setObjectValue:nil];
    }
}