Что нужно реализовать, чтобы обеспечить набор содержимого для NSArrayController? - PullRequest
1 голос
/ 12 апреля 2010

Эй,

Я пишу что-то в Xcode.Я использую Базовые Данные для постоянства и связываю представление и модель вместе с Привязками Какао;в основном ваше обычное приложение Core Data.

У меня есть контроллер массива (NSArrayController) в моей Xib.Это имеет свой управляемый объектObjectContext, связанный с AppDelegate, как это принято, и отслеживает сущность.Пока все хорошо.

Теперь привязка «Набор содержимого» этого NSArrayController ограничивает его набор содержимого (как и следовало ожидать) с помощью keyPath из выбора в другом NSArrayController (otherAc.selection.detailsOfMaster),Это обычный способ реализации отношения Master-Detail.

Я хочу переменно путь ключа во время выполнения, используя другие элементы управления.Таким образом, я должен вернуть набор контента, который включает в себя несколько других наборов контента, которые являются расширенными и выходят за рамки Интерфейсного Разработчика.

Чтобы достичь этого, я думаю, что вместо этого я должен привязать Набор контента к моему AppDelegate.Я пытался сделать это, но не знаю, какие методы реализовать.Если я просто создаю методы KVC (objectSet, setObjectSet), то я могу предоставить набор содержимого для контроллера массива в методе contentSet.

Однако я не думаю, что связываю это должным образом, потому чтоэто не "освежает".Я новичок в связывании;Что мне нужно реализовать для правильного обновления набора контента, когда другие вещи, такие как выбор в главном NSArrayController, изменяются?

1 Ответ

1 голос
/ 12 апреля 2010

Однако я не думаю, что связываю это должным образом, потому что это не «обновляет».

Чаще всего это означает, что вы присваиваете непосредственно переменной экземпляра, не используя KVC -совместимых методов доступа и не публикуете KVO уведомлений.

Общее решение состоит в том, чтобы создать методы доступа для свойства и затем использовать их везде, в том числе внутри этого класса, за исключением его методов init и dealloc.

...