Сортировка NSArrayController с поддержкой NSTableView

У меня есть NSArrayController и NSTableView. Они показывают треки из iTunes. Я могу сортировать список, щелкнув в заголовке.

Есть ли способ настроить дескриптор сортировки по умолчанию для представления таблицы, чтобы он сортировал альбомы каждый раз, когда пользователь запускает приложение?

Я попытался установить sortDescriptor в контроллере массива и в представлении таблицы, но ничего не меняет.

Спасибо

Изменить: ответ правильный. Но ему нужен NSArray:

- (NSArray *)mainSortDescriptor {

    return [NSArray arrayWithObjects:
            [NSSortDescriptor sortDescriptorWithKey:@"album" ascending:YES], 
            [NSSortDescriptor sortDescriptorWithKey:@"trackNumber" ascending:YES], 
            nil];

}

Ответы

Ответ 1

Если вы хотите связать дескриптор сортировки контроллера массива, вам нужно связать его с чем-то. Вы можете поместить это в свой делегат приложения, например:

- (NSArray *)tracksSortDescriptors {
    return [NSArray arrayWithObject:
             [NSSortDescriptor sortDescriptorWithKey:@"albumName"
                                           ascending:YES]];
}

Затем вы можете настроить привязку в IB как

Bind to: MyAppDelegate  
Model Key Path: tracksSortDescriptors

<суб > Редакцией. Я забыл, что, переведя это из PyObjC, я возвращал список. К сожалению.Суб >

Ответ 2

Я пробовал это, не совсем работал - прибегал к каждому запуску приложения, но не во время работы приложения.

В конце концов, я заметил, что в моем объекте NSArrayController следующее поле было отпущено (argh!):

"Автоматическое переупорядочение содержимого"

... так, FYI всем, кто имеет ту же проблему: убедитесь, что поле включено:)