我有一个3列的NSTableView。我可以通过单击列标题来使用任何列排序。这是我的问题,虽然:我presorting数组,然后将其加载到NSTableView,所以最初的TableView已经按3列之一的值排序。现在,当我点击列标题时,我可以采取措施,出现小的升序/降序图像(三角形),指示排序顺序如何。我想要的是,在第一次加载NSTableView时,能够在列头右侧的列标题中显示此ascendingimage三角形,对于已经对列进行排序的列。感谢提前:)NSTableView和在列标题问题中显示排序图像
Thanks Peter and cb160. So I added this in my refreshList method:
的* lastColumn参数有,如果我使用的NSLog显示它的正确识别,但仍是三角形的形象没有得到当表加载数据第一次加载。有什么我在这里失踪? 我的表视图设置这样的:
-(IBAction)refreshList:(id)sender
{
//setup array here and sort the array based on one column. This column has
identifier 'col1' and it works as expected
// trying to set the sortindicator image for the column here
NSTableColumn *lastColumn;
lastColumn = [aTableView tableColumnWithIdentifier:@"col1"];
[aTableView setIndicatorImage:[NSImage imageNamed:@"NSDescendingSortIndicator"]
inTableColumn:lastColumn];
[aTable reloadData];
}
- (int) numberOfRowsInTableView:(NSTableView *)aTable
{ // return count of array
}
- (id)tableView:(NSTableView *)aTable objectValueForTableColumn: (NSTableColumn *)
tableColumn row:(int)row
{
//set up arrays here to load data in each column
}
- (void)tableView:(NSTableView *)aTableView sortDescriptorsDidChange:(NSArray
*)oldDescriptors
{
//sort here when column headers are clicked
}
那的东西。我不知道如何选择正确的列。 例如:\t [aTable setIndicatorImage:[NSImage imageNamed:@“NSAscendingSortIndicator”] inTableColumn:tableColumn]; 当我有多列时,我如何才能真正获得正确的表列? – cocoacoder 2010-01-10 22:17:15
在IB中为它们提供标识符,然后向表格视图请求具有该标识符的列。 – 2010-01-10 22:46:10
试过了。例如: [aTable setIndicatorImage:[NSImage中imageNamed:@ “NSAscendingSortIndicator”] inTableColumn:(NSTableColumn *)[aTable columnWithIdentifier:@ “的col1”]]; 其中col1是该列的标识符。然后我做了一个 [tableview reloaddata]。 但是当第一次加载tableView的时候仍然不能得到那个三角形显示。 – cocoacoder 2010-01-10 23:37:36