1

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

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

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

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

谢谢你的帮助。

4

1 回答 1

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];
    }
}
于 2014-07-29T14:25:46.170 回答