3列のNSTableViewがあります。列ヘッダーをクリックして、任意の列を使用して並べ替えることができます。ただし、ここに問題があります。配列を事前に並べ替えてから NSTableView にロードしているため、最初の TableView は 3 つの列のいずれかの値で既に並べ替えられています。列ヘッダーをクリックすると、並べ替えることができ、並べ替え順序を示す小さな昇順/降順の画像 (三角形) が表示されます。私が望むのは、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
}