问题标签 [nscollectionviewitem]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
108 浏览

swift - 图层不能在 NSCollectionViewItem 中修改

我继承了一个 NSCollectionViewItem 并想修改其视图的层,但我无法让它工作。

我在项目中的每个视图的 IB 中激活了核心层动画,但仍然没有变化。如何更改视图层?

0 投票
1 回答
375 浏览

xcode - 数据模型更改时如何更新 NSCollectionViewItem?

我有一个绑定到 NSCollectionView 的 NSArrayController。我的数据模型是一个 Person 类。Inside Person 是一个计时器,它将每秒更改属性年龄。在我的 NSCollectionViewItem 我有一个 NSLabel 绑定到代表Object.age 。

当应用程序启动时,标签将显示年龄的初始值,但当值更改后它不会更新。我怎么做?

0 投票
1 回答
3461 浏览

macos - 10.11 NSCollectionView - 动态确定单元格大小

适用于 OS X v10.11 的 AppKit 发行说明建议可以基于每个项目调整集合视图项目的大小:

可以为 CollectionView 的所有项目全局确定项目大小(通过设置 NSCollectionViewFlowLayout 的“itemSize”属性),或者可以从一个项目更改为下一个项目(通过在 CollectionView 的委托上实现 -collectionView:layout:sizeForItemAtIndexPath:)。

在我的例子中,我的 CollectionViewItem 由一个包含不同长度字符串的标签组成。我正在使用 NSCollectionView 来显示字符串数组,因为 NSStackViews 不支持数组绑定,也不支持换行。字符串数组通过数组控制器绑定到 NSCollectionView 的内容。

我的项目的 nib 文件设置正确,根视图和标签都具有1000 的Content HuggingContent Compression Resistance优先级,并且边缘通过 AutoLayout 对齐。

现在,NSCollectionViewLayout 的委托方法有这个签名:

我现在的想法是获取项目本身,对其进行布局传递,然后返回新的项目大小。

这种方法的问题是 itemAtIndexPath 返回 nil。如果我在 nil 情况下返回默认大小,则该默认大小将用于所有单元格。

如何设置 NSCollectionView 以尊重我的项目的 AutoLayout 约束,并为每个单元格动态使用计算的大小?

0 投票
1 回答
2573 浏览

macos - NSCollectionView 选择和取消选择

我最近让我的 NSCollectionView 以正确的方式处理部分。我通过添加与“选定”模型键路径的绑定来实现这一点。此操作隐藏了一个蓝色视图,该视图向用户显示了一个选择。问题是,我无法通过单击视图中的图像外部来取消选择我的 NSCollectionViewItem,这是我的 NSCollectionViewItem 层次结构中的最低视图。当我点击我的 CollectionView 时,它也没有取消选择 itemView。我试图通过子类化我的 NSCollectionItemView 并覆盖所选变量来使其工作。但是,正如我所说,到目前为止,我还没有解决我的问题。

现在我希望得到帮助。我能做些什么?

PS:我确实通过我的 MainStoryboard 使用 arrayController 设置了 NSControllerView。是的……我刚开始用 swift 和 cocoa 为 OS X 编程。但我对可可触摸有了一些了解。是否有任何熟悉的方法来初始化和处理 NSCollectionView 的操作,如 UICollectionView?

0 投票
1 回答
1284 浏览

swift - 使用 NSCollectionView 时断言失败

我目前正在使用 Swift 开发 OS X 应用程序。我试图NSCollectionView在我的主视图中使用一个,所以我在我的文件中添加了一个NSCollectionView对象。.xib除了链接数据源并委托给文件所有者之外,我没有更改任何内容。

这是我为实现NSCollectionViewDataSource协议而编写的代码:

现在,当我运行我的代码时,我得到了一个未捕获的异常,应用程序崩溃了,我不知道为什么。这是我认为有用的堆栈跟踪的一部分:

任何帮助将不胜感激。

0 投票
0 回答
551 浏览

objective-c - 选择或取消选择“使用交替颜色”时,NSCollectionView 不会更改背景颜色

现在我正在为我的基于文档的应用程序创建一个启动窗口。窗口的目的是给用户一些视觉上的东西,而不是菜单栏。

该窗口包含一个NSCollectionView用于显示最近文件的窗口。我确实设法使用单独的.xib文件作为参考在集合视图中获取最近的文档NSCollectionViewItem。我的集合视图具有垂直流布局。

然而,这些物品看起来也不像我想要的那样。在我的故事板中,我确实选择了“使用交替颜色”复选框,这是集合视图的一个属性。出于测试目的,我选择红色作为主要颜色,黄色作为次要颜色。在情节提要中,我立即看到完整的集合视图变为红色。当我运行该应用程序时,我的启动窗口显示包含所有最近文档的集合视图,但所有背景都是主要颜色,即红色。

我确实看过一些 tuts,也是 Ray Wenderlich 的,但我似乎找不到任何关于交替颜色的信息。

这就是我创建收藏视图项目的方式:

有没有人遇到过这个问题?有解决办法吗?非常感谢 !

0 投票
1 回答
785 浏览

swift - NSCollectionViewItem 在 itemForRepresentedObjectAtIndexPath 中没有出口

我有一个 NSCollectionView,它显示了一堆名为“ImageCollectionViewItem”的项目。我有一个 ImageCollectionViewItem.xib 文件,它只有一个 NSView 覆盖该项目。我希望能够动态更改该视图中的内容,但是当我尝试引用它时,它是 nil。我已经检查了以下问题:UIViewController 中的 outlets nil in viewdidload,这不是我的问题,我链接了它并且我有实心圆圈

这是视图控制器扩展:

然后这里是 ImageViewCollectionItem 代码

0 投票
0 回答
283 浏览

cocoa - 将 NSCollectionView 链接到 NSStoryboard 中的 NSCollectionViewItem

在情节提要中,我在 View Controller Scene 中有一个 NSCollectionView,还有一个 Collection View Item Scene。

但是,我不知道如何将这两者联系起来。我在 Interface Builder 中看不到任何东西来链接它们。

NSCollectionView 类参考列出了这两个用于注册项目的函数:

注册一个类时,该类应该有一个不带参数的 init()。我不知道如何编写一个从情节提要中实例化一个的。

而且我不知道如何从情节提要中取出笔尖。

我使用的是 NSCollectionViewFlowLayout,而不是带有项目原型的旧变体。

我觉得我错过了一些明显的东西。任何帮助将不胜感激。

谢谢,迪洛

0 投票
3 回答
786 浏览

xcode - 通过单击取消选择 NSCollectionViewItem

如何通过再次单击取消选择 NSCollectionViewItem?

这是我用于选择和取消选择的代码:

此代码在单击另一个项目时取消,但在单击同一项目时不取消。单击同一项目时,我想取消选择。

0 投票
0 回答
181 浏览

macos - 如何在 NSCollectionView 中模仿 NSTableView 的项目高亮行为?

我有NSCollectionView包含NSTextField和的自定义项目NSImageView

我手动实现了集合视图项的突出显示行为(即setSelected:在我的NSCollectionViewItem后代类中重新定义了该方法)。我成功更改了所选项目的背景颜色,但我错过了一件小而重要的事情:所选项目的文本颜色没有改变。

我知道NSTableView突出显示的项目会随着背景颜色改变文本颜色,但我无法模仿它,因为我不知道颜色变化的算法。我的文字颜色NSCollectionViewItems可以不同。当我在 中突出显示项目时NSTableView,灰色文本变为浅灰色,黑色变为白色,依此类推。有人知道他们是怎么做到的吗?也许我错过了 Cocoa API 中的现成解决方案?请帮忙。