2
在我的應用程序中,我有一個帶有自定義標題單元格的NSTableView,它被編程分配。指定自定義單元格的代碼如下所示:帶自定義NSColumnHeaderCell的NSTableView
-(void)setupTableHeader:(id)table {
NSArray *columns = [table tableColumns];
NSEnumerator *cols = [columns objectEnumerator];
NSTableColumn *col = nil;
TRDarkTableColumnHeaderCell *iHeaderCell;
while (col = [cols nextObject]) {
iHeaderCell = [[TRDarkTableColumnHeaderCell alloc] initTextCell:[[col headerCell] stringValue]];
[col setHeaderCell:iHeaderCell];
[iHeaderCell release];
}
}
這可以像您期望的那樣工作。但是,當我調整窗口大小並且NSTableView呈現其滾動條時,會使用默認的NSTableHeaderCell創建額外的標題單元格。爲了嘗試處理這個問題,我試圖設置一個通知來調整窗口大小。不幸的是,這有沒有影響(我setupTableHeader功能仍然返回該表1列)
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(setupTableHeaders) name:NSWindowDidResizeNotification object:[[NSApp delegate] window]];
請注意,我的通知調用一個輔助函數setupTableHeaders,這就要求上述setupTableHeader功能。下面是截圖來說明問題:
alt text http://img22.imageshack.us/img22/640/headercell.png
正如所建議的,我不得不繼承表頭視圖的子類,但這工作很好。謝謝。 – ndg 2010-06-25 10:52:38