gpt4 book ai didi

objective-c - 有没有办法在 NSCollectionView 中有不同的 View ?

转载 作者:太空狗 更新时间:2023-10-30 03:46:02 25 4
gpt4 key购买 nike

当您可以选择不同的模板时,我想要类似于 iWork 具有页面模板选择屏幕的方式,并且每个 View 包含不同的信息,具有不同的大小等。

我已经尝试子类化 NSCollectionView 并使用 newItemForRepresentedObject 方法确定要显示哪个 View (而不是使用 itemPrototype View 界面生成器),但由于某种原因它没有正确定位 View ,也没有显示正确的数字存在的项目数的 View 。这是我的代码。我希望有人可能有更好的方法来执行此操作,或者提供如何完成此操作的示例。

personView 和 companyView 是子类 NSCollectionView 中的属性,它们是 IB 中 View 的 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;

最佳答案

(创建具有不同大小项目 View 的 NSCollectionView 似乎是不可能的;每个大小都需要是某个“主要”大小的倍数或整数除数,并且您需要做大量的项目-检查并重新排序以确保甚至可以在网格中呈现它们。你确定你问的是正确的问题吗?)

另外,我在 iWork 中看不到这样的东西:它的模板选择器中的所有 View 都是相同的。 (尽管它们的 NSImageView subview 大小不同。)我建议尽可能使用相同的 View 并适本地更改其 subview 。例如,绑定(bind)文本字段的“隐藏”属性或更改 ImageView 的宽度很容易。您不能创建一个适用于两个类的 View ,并根据所表示的对象适本地更改自身吗?

关于objective-c - 有没有办法在 NSCollectionView 中有不同的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2308798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com