Пожалуйста, помогите выяснить привязку для NSCollectionView - PullRequest
1 голос
/ 28 января 2011

У меня есть собственный NSView (MyView), который отображается NSViewCollectionItem.

MyView обладает свойством типа MyObject.

Мой основной NSWindowController имеет IBOutlets для NSViewCollection и NSArrayController.

NSArrayController привязан к массиву объектов типа MyObject.

Я бы хотел, чтобы значения из массива были привязаны к пути "myView.myObject".

Я не могу понять, как настроить это в IB.Я не понимаю, какие ключи мне следует использовать.Должен ли мой массив быть коллекцией объектов NSDictionary, чтобы я мог иметь ключ с именем «myObject» вместо непосредственного хранения значений?

Я очень плохо знаком с привязками, так что это немного сложно,Пожалуйста, помогите.

Ответы [ 2 ]

1 голос
/ 31 января 2011

Вы можете привязать «myView.myObject» к «ПредставительObject.property» из NSCollectionViewItem. Таким образом, если у вас есть свойство с именем info в вашем устройствеOObject, вы можете привязать объект к ПредставленномуОбъекту.info

1 голос
/ 29 января 2011

Я разобрался.Это должно выглядеть так:

1) NSArrayController: Привязать к → MyWindowController (Владелец файла) Путь к ключу модели → myArrayWithObjects

2) NSCollectionView: Привязать к → NSArrayController Клавиша контроллера → builtObjects

3) Теперь, чтобы получить это значение из массива в пользовательский NSView, вам необходимо переопределить следующий метод в своем подклассе NSCollectionViewItem:

- (void)setRepresentedObject:(id)object
{
    [super setRepresentedObject:object];

    // e.g. [self.view setMyProperty:object];
}
...