我想类似的iWork如何对网页的模板选择屏幕时,您可以选择不同的模板,每个视图包含不同信息的东西有差异的大小等有没有办法在NSCollectionView中有不同的视图?
我试图继承NSCollectionView并确定哪个视图显示使用newItemForRepresentedObject方法(与使用itemPrototype视图Interface Builder相反),但由于某种原因,它不能正确定位视图,并且它不会显示正确数目的视图数目。这是我的代码。我希望有人可以有更好的方式来做到这一点,或者说这是如何完成的。
personView和companyView属于子类NSCollectionView中的属性,即IB中的IBOutlets视图。
-(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;
}
也许这可能会有所帮助:http://stackoverflow.com/questions/1210352/how-do-i-bind-programatically-in-the-view-subclass-of-my-nscollectionview?rq=1 – 2012-08-30 16:51:34