gpt4 book ai didi

cocoa - 如何初始化 NSCollectionViewItem?

转载 作者:行者123 更新时间:2023-12-03 16:38:51 31 4
gpt4 key购买 nike

我正在尝试设置一个 NSCollectionView,它在各个 NSCollectionViewItem View 中具有自定义绘图。我需要在每个 View 中绘制一个图像,但无法将该 View 链接回 Interface Builder 中的 NSCollectionViewItem 子类。是否有一个 init 方法可以与我的 NSCollectionViewItem 一起使用来执行初始化操作?我尝试实现 copyWithZone,但我做错了一些事情,因为我遇到了一些永恒循环。目前,我发现与 View 建立连接的唯一机会是在使用 -(void)setSelected:(BOOL)flag 更改选择之后。我想在 View 中进行绘图,但我需要来自representedObject 的图像作为我的源。我读到的所有与 NSCollectionView 相关的内容似乎都不完整。

@implementation CollectionViewItem
-(void)setSelected:(BOOL)flag {
[super setSelected:flag];
NSLog(@"setSelected: %d", flag);
// tell the view that it has been selected
[(CollectionViewItemView* )[self view] setSelected:flag];
// This is where I pass my image to my view
[(CollectionViewItemView* )[self view] setOriginalSprite:[(MyModel* )self.representedObject imageSource]];
[(CollectionViewItemView* )[self view] setNeedsDisplay:YES];
}
@end

最佳答案

我找到了这个文档 - NSCollectionViewItem class

我在那里发现的内容显示设置像这样的引用:

Setting the Represented Object

– representedObject Available in Mac OS X v10.5 through Mac OS X v10.5
– setRepresentedObject: Available in Mac OS X v10.5 through Mac OS X v10.5

您的样本: -(void)setSelected:(BOOL)标志

我不知道该语言,但是 BOOL 是一个 ID 吗?

setRepresentedObject:

Sets the receiver’s represented object to the specified model object. (Available in Mac OS X v10.5 through Mac OS X v10.5.) - (void)setRepresentedObject:(id)object Parameters

object

The receiver’s model object.

Availability

Available in Mac OS X v10.5 through Mac OS X v10.5.

Declared In NSCollectionView.h

注意:我确实在文档中看到了这一点:

重要提示:在 Mac OS X v10.5 中,NSCollectionViewItem 类的父类(super class)是 NSObject。在 Mac OS X v10.6 及更高版本中,NSCollectionViewItem 现在是 NSViewController 的子类。进行此更改是为了改进 NSCollectionView 中 View 的复制方式。 NSCollectionViewItem 与以前的实现保持二进制兼容,并且正确处理取消归档。

所以,如果您习惯使用较旧的 API,那么自您上次执行此操作以来可能已经发生了一些变化......???

关于cocoa - 如何初始化 NSCollectionViewItem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6194395/

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