当您可以选择不同的模板并且每个视图包含不同的信息具有不同的大小等时,我想要类似于 iWork 如何为 Pages 提供模板选择屏幕的东西。
我已经尝试继承 NSCollectionView 并使用 newItemForRepresentedObject 方法确定要显示的视图(而不是使用 itemPrototype 视图界面生成器),但由于某种原因它没有正确定位视图,并且它没有显示正确的视图数量存在的项目数。这是我的代码。我希望有人可能有更好的方法来做到这一点,或者一个如何做到这一点的例子。
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;
}