我有一个NSArrayController和一个NSTableView。他们从iTunes中显示曲目。我可以通过单击标题对列表进行排序。
有没有办法为表格视图设置默认排序描述符,以便每次用户启动应用程序时对相册进行排序?
我尝试在数组控制器和表视图上设置sortDescriptor但不做任何改动。
谢谢
编辑:答案是对的。但它需要一个NSArray:
- (NSArray *)mainSortDescriptor {
return [NSArray arrayWithObjects:
[NSSortDescriptor sortDescriptorWithKey:@"album" ascending:YES],
[NSSortDescriptor sortDescriptorWithKey:@"trackNumber" ascending:YES],
nil];
}
答案 0 :(得分:13)
如果要绑定数组控制器的排序描述符,则必须将其绑定到。您可以将其放在应用程序委托中,例如:
- (NSArray *)tracksSortDescriptors {
return [NSArray arrayWithObject:
[NSSortDescriptor sortDescriptorWithKey:@"albumName"
ascending:YES]];
}
然后您可以在IB中设置绑定
Bind to: MyAppDelegate Model Key Path: tracksSortDescriptors
<子>编辑。我忘记了,当从PyObjC翻译时,我正在返回一个列表。糟糕。子>
答案 1 :(得分:5)
我尝试了这个,并没有完成工作 - 在每个应用程序启动时使用,但在应用程序运行时没有。
最后,我注意到在我的NSArrayController对象中,以下框未被取消(唉!):
“自动重新排列内容”
...所以,对于遇到同样问题的人,请注意:确保该框已开启:)