Какой контроллер? Как я понимаю, 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?
Любая помощь будет принята с благодарностью. Спасибо!