2010-04-14 2 views
4

У меня есть NSTableView с несколькими столбцами. щелчок каждого столбца сортируется по столбцу, как в iTunes. Однако, когда вначале загружаются таблицы, строки не сортируются, и ни одна таблица не подсвечивается или не отображает отображаемое вверх/вниз изображение. Мне интересно, если theres простой способ я могу программным образом установить столбец, который сортируется в таблице, и установить изображение индикатора при запуске.NSTableView устанавливает столбец сортировки?

Единственное решение, о котором я могу думать, это использовать [NSTableView setIndicatorImage: inTableColumn:] и [NSTableView setHighlightedColumn:], но это делает так, что щелчок по заголовку не выделяет столбец. Я бы предпочел не использовать tableView: mouseDownInHeaderOfTableColumn: и переписать весь щелчок на заголовке для сортировки.

ответ

8

Вы можете попробовать установить свой сортировочный дескриптор.

- (void)setSortDescriptors:(NSArray *)array 


- (void)windowControllerDidLoadNib:(NSWindowController *) windowController 
{ 
    [super windowControllerDidLoadNib:windowController]; 
    NSSortDescriptor* sortDescriptor = [[[NSSortDescriptor alloc] initWithKey: @"order" ascending: YES] autorelease]; 
    [oTable setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]]; 
} 

http://lists.apple.com/archives/cocoa-dev/2006/May/msg01434.html

+0

Wow! это сработало! Благодарю. – overcyn

+0

Удивительный, рад, что он сработал !! – Kaili

+0

@ Кайли, где это будет? я бы разместил это в подклассе NSTableView –

Смежные вопросы