如何從我的NSTableView中刪除NSTableCellView(或其子類)?刪除NSTableCellView
當我清空我的數組信息,爲新信息排隊DB,然後重新加載表數據時,它只更新索引值與新數組列表中找到的索引值類似的單元格。
ex。
我首先在我的數組中有8個對象,它們顯示正常。當我更新我的陣列,現在只有3,表中前三個單元格得到更新,而最後5個仍然是舊的。舊的不可選擇,但只能看到。我懷疑我錯過了一些重繪/ dealloc ..
我試過setNeedsDisplay在TableView上,但沒有運氣呢。
進出口使用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;
}
同意@馬特 - 您可以張貼numberOfRowsInSection:和的cellForRowAtIndexPath:數據源的方法呢? – danh 2013-03-25 22:40:21
基本的配方是這樣的:你有一個支持表格的數組。 numberOfRows將回答該數組的長度,任何在其簽名中具有indexPath的內容都將引用indexPath.row中的數組。改變數組和(在最簡單的情況下)調用[tableView reloadData]; – danh 2013-03-25 22:42:17
我最後發現了這個問題(幾乎所有的事情都是一點一點的發表評論之後)。我在我的cellView類中有一個空的drawRect,它將重新繪製出來。 – d00dle 2013-03-27 16:26:22