Question

I'm using a View Based NSTableView and binding to display content of my objects.

When I delete one of them, the tableView reflect the change, by removing the cell for this object.

The problem is that the NSTableCellView doesn't receive the setObjectValue: with nil or another object, and so the object referenceCount is not decremented, and my object never release.

Is there a way to override the tableView to force calling setObjectValue: when it cache deletedRows?

Thanks for your help.

Was it helpful?

Solution

I just found the solution right here.

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

Just in case the link fail, the solution is to set it manually, in the following method

- (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];
    }
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top