NSTableView и отображение изображения сортировки в вопросе заголовка столбца
-
19-09-2019 - |
Вопрос
У меня есть NSTableView с тремя столбцами.Я могу выполнить сортировку по любому столбцу, щелкнув заголовок столбца.Вот моя проблема:Я предварительно сортирую массив, а затем загружаю его в NSTableView, поэтому исходный TableView уже отсортирован по значениям в одном из трех столбцов.Теперь, когда я нажимаю на заголовки столбцов, я могу прибегнуть к помощи, и появляется небольшое изображение по возрастанию/убыванию (треугольник), указывающее порядок сортировки.Я хочу иметь возможность отображать этот треугольник восходящего изображения в заголовке столбца прямо в начале, когда 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
}
Решение
Вы можете использовать -setIndicatorImage:inTableColumn: метод на НСТаблевиев сделать это.
Вы можете использовать строки NSAscendingSortIndicator
и NSDescendingSortIndicator
использовать встроенные изображения (с UIImage
's +imageNamed:
метод.)
Вы можете получить NSTableColumn *
параметр для этого метода с использованием -tableColumnWithIdentifier: метод на НСТаблевиев.Установите идентификатор в столбце, используя атрибут идентификатора в Interface Builder (см. ниже).