Мне нужно что-то похожее на то, как в iWork есть экран выбора шаблонов для страниц, когда вы можете выбирать разные шаблоны, и каждое представление содержит различную информацию, имеет разный размер и т. Д.
Я попытался создать подкласс NSCollectionView и определить, какое представление отображать, с помощью метода newItemForRepresentedObject (в отличие от использования ItemPrototype view Interface Builder), но по какой-то причине он не позиционирует представления правильно и не показывает правильное число просмотров на количество предметов, присутствующих. Вот мой код Я надеялся, что у кого-то может быть лучший способ сделать это или пример того, как это делается.
personView и companyView - это свойства в подклассе NSCollectionView, которые являются IBOutlets для представлений в IB.
-(NSCollectionViewItem *)newItemForRepresentedObject:(id)object{
NSCollectionViewItem *collectionViewItem = [[NSCollectionViewItem alloc] init];
[collectionViewItem setRepresentedObject:object];
if([[object valueForKey:@"company"] boolValue] == YES){
NSView *view = [companyView retain];
[collectionViewItem setView:companyView];
}else{
[collectionViewItem setView:personalView];
}
return collectionViewItem;
}