Сортировка в NSTableView - PullRequest
0 голосов
/ 09 мая 2011

Я создаю NSTableView и использую ссылку делегата и источника данных на класс, который я заливаю в таблицу.В классе я использую NSMutableArray для хранения значений для таблицы.могу ли я сделать сортировку в таблице.Как мне это сделать.Я хочу отсортировать по значениям в столбце.Я использую сортировку hey & selector, но при запуске я получаю эту ошибку [<NSCFString 0x18da00> valueForUndefinedKey:]: this class is not key value coding-compliant for the key name.

, как решить эту проблему.

Ответы [ 2 ]

3 голосов
/ 09 мая 2011

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

Тем не менее, «лучший» способ состоит в том, чтобы сортировать таблицу самостоятельно, используя NSSortDescriptor (вы можете установить это в коде или через Interface Builder). Чтобы заставить дескриптор сортировки работать с пользовательскими классами, вам нужно сделать их совместимыми с KVC, но, к счастью, вы работаете только с NSString s, поэтому работа уже сделана для вас. Либо в Интерфейсном Разработчике, либо в коде установите ключ дескриптора сортировки на self (так как вы сравниваете сами строки, а не их переменные экземпляра), а селектор на compare: (так как вам просто нужно сделать простое сравнение, и NSString s реализуют этот метод). Это легко сделать в Интерфейсном Разработчике (как только вы установите self в качестве ключа, compare: даже появится для вас), хотя, если бы вы хотели создать сложный дескриптор сортировки, вам пришлось бы сделать это в коде.

2 голосов
/ 09 мая 2011

Похоже, что значения в вашей таблице NSStrings. Вам нужно выбрать что-то, на что NSString отвечает как ключ. Вероятно, ключ self поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...