首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用NSCollectionView中的NSBox突出显示选定项

使用NSCollectionView中的NSBox突出显示选定项
EN

Stack Overflow用户
提问于 2012-01-30 15:56:24
回答 2查看 2.5K关注 0票数 2

如何使NSCollectionView更新以使用NSBox显示当前选定的项?在列表中显示选择似乎是一件基本的事情,但我在这方面遇到了各种各样的麻烦。

我读过这个问题,也看过苹果的样本代码。似乎有几种方法可以做到这一点。

  1. 使用NSCollectionViewItem的子类和特殊的“原型视图”。
  2. 使用NSBox

我希望使用NSBox方式,因为它看起来很简单,并且也在官方代码示例中使用。

这显然是按照对质黑人在下面的引文中所描述的

如果一个不同的背景色足以作为高亮显示,您可以简单地使用一个NSBox作为集合项视图的根项。用您选择的高亮颜色填充NSBox。将NSBox设置为自定义,这样填充才能工作。将NSBox设置为透明。 将NSBox的透明度属性绑定到文件所有者的选定属性(集合项),设置透明绑定到NSNegateBoolean的值转换器。

我只停留在第一部分:“使用NSBox作为您(sic)集合项视图的根项”。我试图将“自定义类”更改为继承自FoobarBoxNSBox,但这似乎没有帮助,因为我不能将背景色更改为蓝色,也不能绑定透明度。任何关于如何在我的NSCollectionVuew中显示所选内容的提示都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-28 21:50:11

在XCode 4.5.2中,您只需删除NSColletionView附带的NSView并在NSBox中拖动(NSBox将具有所有可用的适当绑定)。确保您重新绑定CollectionView到您的新盒。

票数 1
EN

Stack Overflow用户

发布于 2012-12-23 15:12:31

首先,为您的ListView创建一个从NSBox继承的类

代码语言:javascript
复制
 @interface MyListViewBox : NSBox

    @property (unsafe_unretained) IBOutlet NSCollectionViewItem *controller;

 @end

然后,在Interface中,将类名指定为"Custom“属性,如我的屏幕截图所示

然后,您将意识到IB没有在GUI中显示NSBox属性或绑定(至少使用4.5.2版本),所以我决定以编程方式更改这些属性。

  • 在NSCollectionViewItem子类中为NSBox创建一个出口(如上面所示)
  • 使用IB将出口链接到您的NSCollectionItemView
  • 对于您的awakeFromNib子类,添加以下代码 -(AwakeFromNib){//属性未显示在XCode检查器IB视图//配置框中:-( self.boxType = NSBoxCustom;self.borderType = NSLineBorder;self.fillColor = NSColor selectedControlColor;//将NSBox的“透明”属性绑定到NSCollectionViewItem控制器//控制器的“选定”属性中,在IB NSValue变压器*转换器= NSValueTransformer selectedControlColor中IBOutlet绑定为IBOutlet[自绑定:@“透明”toObject:self.controller withKeyPath:@"selected“选项::转换器,NSValueTransformerBindingOption,nil];
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9066701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档