Имам NSTableView го обвърже с NSArrayController. Аз "сортиране на NSTableView и тя работи добре, но когато щракнете върху реда на NSTableView получавам различна стойност е като NSArrayController не е бил сортиран.
Ето как сортирам NSTableView:
NSSortDescriptor *sd = [NSSortDescriptor sortDescriptorWithKey:@"names" ascending:YES];
[self.names setSortDescriptors:[NSArray arrayWithObject:sd]];
Например, когато щракна върху Name1 получавам стойносттана името2. Това, от което имам нужда е да съответства на стойностите на NSTableView с NSArrayController. Всеки от вас знае какво правя погрешно? Или как може да сортирате NSTableView и NSArrayController?
Аз наистина ще оценя вашата помощ
Отговори:
1 за отговор № 1когато щракна върху Име1, получавам стойността на Име2
как получавате ли стойността?
Подозирам, че гледате на грешното място.
Първо, трябва да обвържете табличния изглед "s selectionIndexes
свързване към контролера на масива selectionIndexes
Имот. По същия начин трябва да обвържете табличния изглед "s sortDescriptors
свързване към контролера на масива sortDescriptors
Имот.
Не е ясно какво self.names
се отнася за вашия код. Това ли е табличен изглед или масивния контролер? Лично аз бих задал реда на сортиране на табличния изглед чрез задаване на масивния контролер sortDescriptors
.
Както и да е, след всичко, което е настроено, когато искатеза да получите избрания обект (и), трябва да се консултирате с контролера на масива, а не с модела, който може да предоставя съдържанието на контролера на масива. (Всъщност не казахте, но аз ще приемам вашия контролер на масива contentArray
свързването е обвързано с индексирано свойство на колекцията във вашия модел.)
Първо, можете просто да поискате неговата selectedObjects
Имот.
Алтернативно, ако започнете от индекс на ред, трябва да го използвате, за да индексирате в неговия arrangedObjects
.
Ти трябва не просто вземете ред или индекс за подбор и индексв индексираното свойство на колекцията на вашия модел. Масивният контролер е пренаредил обектите, преди да ги предостави на табличния изглед (на базата на дескрипторите на сортиране и, евентуално, на филтърния предикат). Така индексите вече не съответстват на оригиналната индексирана колекция в модела.