Я боролся с точно такой же проблемой сегодня.
Кажется, что привязка содержимого и selectionIndexes tableView к контроллеру массива IB > inspector window > select your tableView > bindings tab
отключает сортировку, щелкая заголовок таблицы.Это имеет смысл, потому что табличное представление теперь показывает вам точное содержимое (и порядок) контроллера массива.
Я снял эти привязки в IB, также удалил все ключи сортировки из столбцов таблицы IB > inspector window > select your NSTableColumn > attributes pane
.Установите флажок Creates Sort Descriptor
на вкладке привязки столбца таблицы.Для таблицы не требуется sortDescriptor, хотя я думаю, что привязка sortDescriptor таблицы к Shared User Defaults Controller
сохраняет порядок при выходе из приложения.
Если вам нужно отсортировать таблицу, поместите sortDescriptor в контроллер массива,может быть, в awakeFromNib
.
- (void)awakeFromNib {
[super awakeFromNib];
[self setSortDescriptors:[NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"propertyOfYourObject" ascending:YES selector:@selector(compare:)]]];
}
Это не мешает щелкать заголовки столбцов таблицы.
Я не могу заставить sortDescriptor на контроллере массива работать с привязками.