Как отключить сортировку в NSTableView?
-
29-09-2019 - |
Вопрос
У меня есть NSTableView, когда я нажимаю на определенный столбец заголовка, данные в таблице меняются местами или сортируются с ног на голову.Я проверил NSTableView
а также NSTableColumn
но не смог найти ни одного метода, который отключал бы это.Я был бы признателен, если кто-нибудь сможет помочь отключить эту сортировку при нажатии на заголовок определенного столбца.
Решение
Сортировка NSTableView
делается с помощью его sortDescriptors
, видеть здесь.
Ан NSTableColumn
использует свои sortDescriptorPrototype
(см . здесь) для генерации дескриптора сортировки NSTableView
, в зависимости от того, сколько раз вы щелкнули по заголовку столбца и т.д.
Если вы используете dataSource
чтобы управлять данными, дескриптор сортировки передается с помощью метода делегирования tableView:sortDescriptorsDidChange:
, видеть здесь.Вам просто нужно проигнорировать сообщение об изменении, чтобы остановить сортировку.
Если вы используете привязки Cocoa для управления данными, дескриптор сортировки генерируется столбцом таблицы и устанавливается в NSArrayController
.Чтобы остановить это, просто откройте инспектор привязки столбца таблицы, выберите value
, и снимите флажок "Создает дескриптор сортировки".