我有一个cocoa应用程序,它有一个通过NSArrayController绑定到模型的TableView.
该应用程序按我的意愿工作,但表的默认排序顺序是错误的.
buildwatch http://public.west.spy.net/BuildWatch.png
我通常启动程序并单击最后一个标题两次以使其以正确的方式排序.是否有一种方法可以在nib/bindings /中指定默认的排序顺序,或者以编程方式告诉它如果我在那里点击两次会发生什么?或者甚至只记得以前的排序顺序?
看看NSSortDescriptor.
您可以使用-setSortDescriptors:在NSTableView上进行设置.或者,您可以将排序描述符放在ivar中,并使用IB中的排序描述符绑定将它们绑定.
我通常在-windowDidLoad中做这种事情.假设您的NSWindowController
子类将IBOutlet _arrayController设置为相关的NSArrayController,并且您的模型拥有属性buildETA:
NSSortDescriptor *buildETASortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"buildETA" ascending:NO]; [_arrayController setSortDescriptors:[NSArray arrayWithObject:buildETASortDescriptor]]; [buildETASortDescriptor release];
编辑:将-awakeFromNib更改为-windowDidLoad,因为这是一个假设的NSWindowController
子类