Какой контроллер? Как я понимаю, self в строке archivedView = [NSKeyedArchiver archivedDataWithRootObject: self.controller.integerView]; является NSCollectionView. Так что я не могу понять, что такое контроллер. Это еще один выход в файле IB?

ствую, что это простая задача, но я не могу заставить ее работать. Я пытаюсь иметь NSCollectionView с пользовательскими элементами. Я добавил еще один NSImageView в настраиваемое представление элемента и подклассифицировал это представление, чтобы добавить настраиваемый выход, подключенный к этому дополнительному NSImageView.

Теперь я переопределяю- (NSCollectionViewItem *)newItemForRepresentedObject:(id)object потому что иногда мне нужно удалить этот NSImageView.

- (NSCollectionViewItem *)newItemForRepresentedObject:(id)object {

    CustomItem *theItem = (CustomItem *)[super newItemForRepresentedObject: object];

    ...

    if (I need to remove that NSImageView) {

        [[theItem additionalImageView] removeFromSuperview];

    }

    return theItem;

}

Во всяком случае, дополнительныйImageView, кажется,(nil), Это в какой-то мере очевидно, потому что метод super будет возвращать NSCollectionViewItem по умолчанию, который не имеет пользовательского выхода.

Что лучше всего сделать прямо здесь? Я читал кое-что оcopy метод, и я попробовал с:

- (NSCollectionViewItem *)newItemForRepresentedObject:(id)object {

    CustomItem *theItem = [(CustomItem *)[super itemPrototype] copy]; // Here is the change

    ...

    if (I need to remove that NSImageView) {

        [[theItem additionalImageView] removeFromSuperview];

    }

    return theItem;

}

Но это не сработает. Так,Есть ли способ сохранить пользовательские розетки при использовании пользовательских NSCollectionViewItem?

Любая помощь будет принята с благодарностью. Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос