2

У меня есть NSOutlineView, выступающий в качестве исходного списка для моего приложения, а моя модель данных выполняется с помощью Core Data. Я хотел бы использовать привязки (если возможно) для склеивания этих вещей следующим образом:NSOutlineView с привязками, управляемыми данными ядра

У меня есть три основных объекта в моей модели, для примера назовем их «Магазины», «Автомобили» и «Люди», ,

Моя цель состоит в том, чтобы наброски имели 3 "группы" (расширяемые узлы, такие как PLAYLISTS в iTunes), каждая группа, представляющая и перечисляющая одну из моих сущностей, а также у меня есть три кнопки внизу моей окно «Добавить магазин», «Добавить автомобиль» и т. д., которые я хотел бы подключить для выполнения этого действия.

До сих пор в моем ящике окна у меня есть TreeController, связанный с моим экземпляром NSManagedObjectContext моего оконного контроллера, но я не могу понять, как правильно привязать и заполнить вид схемы из TreeController.

Возможно ли это с привязками? Я видел один учебник, в котором создается вторая управляемая объектная модель с объектами для контурных узлов, но некоторые комментарии к этой статье говорят, что это была плохая идея. Я не уверен, как действовать дальше, любая помощь будет замечательной!

ответ

2

Попробуйте Cocoa Bindings Programming topics: Providing Controller Content section

Что я сделал создавать собственные классы для своих сущностей, и добавил isLeaf им свойства. Для верхнего уровня (магазины, автомобили, люди) я возвращаю no. Для листовых узлов (автомобиль, человек и т. Д.) Я возвращаю YES.

Верхний уровень должен иметь отношение to-many к листовым узлам, я назвал это children.

В интерфейсе Builder я установил NSTreeController в режим Entity, имя: Groups. Он связан с managedObjectContext. В Key Paths я установил для атрибута Children значение children и Leaf - isLeaf.

+0

Извините, я имею в виду, что узлы верхнего уровня в представлении «Структура» будут представлены сущностью «Группы», это также верно? – jbrennan

+0

Я бы назвал объект под названием «Группа», чьими именами были бы «Автомобили», «Магазины», «Люди», да. Этот объект имеет отношение к другим объектам, называемым «дети». Вы можете использовать существующие сущности, но я создал пользовательские подклассы «NSManagedObject» для добавления свойств 'isLeaf'. Я мог бы опубликовать свое демо-приложение, если вам интересно – catsby

+0

Если вы не возражаете опубликовать его, это было бы фантастически, просто чтобы я мог посмотреть, как все подключено :) – jbrennan

 Смежные вопросы

  • Нет связанных вопросов^_^