【发布时间】:2010-02-22 04:31:35
【问题描述】:
当您可以选择不同的模板时,我想要类似于 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;
}
【问题讨论】:
标签: objective-c cocoa macos nscollectionview