我有一个包含多列的NSTableView。单击每个列按列排序,如iTunes中所示。但是,当tableview首次加载时,行未排序,并且没有突出显示表列或显示向上/向下指示符图像。我想知道是否有一个简单的方法我可以通过编程方式设置表的排序依据并在启动时设置指标图像。
我能想到的唯一解决方案是使用[NSTableView setIndicatorImage:inTableColumn:]和[NSTableView setHighlightedColumn:],但这使得点击标题不会突出显示列。我宁愿不必使用tableView:mouseDownInHeaderOfTableColumn:并重写标题上的整个点击以对事物进行排序。
答案 0 :(得分: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