1

在 IB 中,我创建了一个NSCollectionView和它的NSCollectionViewItemNSView属于的一个。NSCollectionViewItemNSCollectionItem由一个NSImageView和一个组成NSTextField。我使用可可绑定设置它们的值。我想更改选择NSImageView时的边框颜色。我NSCollectionItem为所有这些创建自己的类和在 IB 中设置他们的自定义类。在NSCollectionViewItem类中我重写了它的 setSelected:(BOOL)flag功能。代码是

 - (void)setSelected:(BOOL)flag
{
   [super setSelected:flag];

   [[self view] setSelected:flag];
   [[self view] setNeedsDisplay:YES];
}

我想在NSView调用它的绘图函数时更改边框颜色。在NSView我创建的类IBOutletsNSImageViewNSTextField将它们与 IB 连接起来。但是当调用绘图函数时,我使用代码

if(selected){
    NSLog(@"self.imageView = %@",self.imageView);
}

结果为nil。为什么我无法获取所选NSCollectionViewItem 的imageView?我在哪里犯了错误?帮帮我,谢谢!

4

1 回答 1

0

NSCollectionViewItem是的子类。NSViewController所以,在 ib 中,我将 的NSImageViewNSView的imageView 连接起来NSCollectionViewItem,并将 NSImageView 的类设置为我自己的类,它是 的子类NSImageView。在 的绘制函数中NSImageView,结果NSLog不是 nil,我可以画一些我自己。

于 2013-04-17T09:25:01.897 回答