我想類似的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