gpt4 book ai didi

objective-c - 删除 NSTableCellView

转载 作者:行者123 更新时间:2023-12-03 17:54:34 24 4
gpt4 key购买 nike

如何从 NSTableView 中手动删除 NSTableCellView(或其子类)?

当我清空保存信息的数组,将新信息排队到数据库,然后重新加载表数据时,它只会更新具有与新数组列表中找到的索引值类似的索引值的单元格。

例如。

我的数组中首先有 8 个对象,它们显示得很好。当我更新数组时,现在只有 3 个,表中前 3 个单元格会更新,而最后 5 个单元格仍然是旧单元格。旧的不可选择,仅可见。我怀疑我错过了一些重画/释放..

我在 TableView 上尝试了 setNeedsDisplay 但还没有成功。

我使用 ARC、Xcode 4.6.1 和 OS X 10.8.3

示例代码

- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView {

return [_array count];
}

- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {

[_tableView setNeedsDisplay];

NSDictionary *d = [_array objectAtIndex:row];
NSString *identifier = [tableColumn identifier];

if ([identifier isEqualToString:@"MainCell"]) {

CustomCellView *cellView = [tableView makeViewWithIdentifier:@"MainCell" owner:self];
[cellView.textField setStringValue:d[@"from"]];
[cellView.subject setStringValue:d[@"subject"]];
[cellView.text setStringValue:d[@"text"]];
[cellView.date setStringValue:d[@"date"]];

return cellView;
}

return nil;
}

最佳答案

你必须告诉 NSTableView reloadData (听起来你正在这样做)。当您这样做时,数据源的工作就是知道现在只有 3 行,并在 numberOfRowsInTableView: 中给出答案(听起来您没有这样做)。您没有显示任何代码(为什么不?),所以当然所有这些都是猜测。

关于objective-c - 删除 NSTableCellView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15624848/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com