问题标签 [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 投票
1 回答
2389 浏览

swift - NSCollectionViewItem 从不实例化

我有点迷路了:我创建了一个按钮,就像一个 colorPicker:点击它会在弹出窗口中显示一个 collectionView。我首先使用包含视图 + 集合视图(嵌入为滚动视图 + 剪辑视图)的 nib 文件来完成此操作。这些东西工作得很好。

由于 nib 文件非常简单(并且为了提高我以编程方式设计视图的编码技能),我决定摆脱 nib 文件并在代码中编写缺失的部分。问题是,除了collectionView 的内容之外,我设法完成了工作。经过深入调查,似乎在方法内部:

应该管理数据源,方法

不起作用。事实上,在:

item 未初始化,正如我介入时调试器所说的那样(不是 nil,未初始化)。显然,makeItem 方法从不从我创建的子类中实例化任何 collectionViewItem。标识符很好,并且调用了 collectionView.register 函数,就像在 nib 版本中一样,因为两个项目在这些点上是相同的。makeItem 函数根本不调用我子类化的 NSCollectionViewItem 的 loadView 方法。

有什么线索吗?

乔什

0 投票
0 回答
88 浏览

json - 如何将 JSON 数据放入 NScollectionview

我正在从一个 url 中获取数据,该 url 是一个 PHP 脚本,它是 JSON 编码我从 MySQL 数据库中的数据。我的数据正在进入我的应用程序,我知道如何解析它,但我不确定如何将我的数据放在我的集合视图中每个项目的 textField.stringvalue 中。我在这个主题上找到的大部分信息都是针对 iOS 的,我正在为 OS X 制作一个应用程序。

ViewController.swift

模型.swift

0 投票
1 回答
73 浏览

swift - 在 Swift 中展开可选值

我对如何解开可选值感到困惑。我正在检查我的变量是否有任何 nil 值,但仍然出现错误。我正在尝试在 NSCollectionViewItem 内执行此逻辑。里面不可以吗?无论我做什么,我都会不断收到此错误:

致命错误:在展开可选值时意外发现 nil

0 投票
1 回答
690 浏览

swift - NSCollectionView 为 OS X 中的 segue 选择项目

我查看了 NSCollectionView API,但没有找到与我看过的某些教程相匹配的任何内容。Xcode 强迫我这样写我的方法,这样就没有错误:

每当我单击 NSCollectionView 中的某个项目时,什么都不会发生,并且我的打印语句永远不会显示在控制台中。从 NSCollectionView 中选择项目的正确方法是什么?

0 投票
2 回答
2805 浏览

objective-c - 如何在不继承它的情况下使用 NSCollectionViewItem?

我正在编写一个非常简单的 macOS 应用程序,我想在集合视图中显示一些图像。对于它们的显示方式,我不需要任何特殊行为。NSCollectionViewItem的文档说:

此类的默认实现支持创建显示单个图像或字符串的简单项目。

这就是我想要的。但是,我找不到有关如何创建默认值的任何信息NSCollectionViewItem

NSCollectionView的文档指出:

每个数据源对象都需要实现以下方法:

集合视图:numberOfItemsInSection:

集合视图:itemForRepresentedObjectAtIndexPath:

上面的第二种方法返回一个NSCollectionViewItem. 从阅读示例中,我了解到NSCollectionViewItem在这种情况下创建的传统方法是调用:

问题是我不明白<some identifier>应该是什么。我没有包含 an 的笔尖,NSCollectionViewItem因为我没有对它进行子类化或以任何方式对其进行自定义。我尝试将以下内容添加到我的数据源中:

imageCollectionView问题在哪里NSCollectionView。然后在我的- (NSCollectionViewItem *)collectionView:itemForRepresentedObjectAtIndexPath:方法中,我调用:

但这会引发异常并将其打印到控制台:

2016-12-19 17:51:27.463 MyApp[28177:3926764] -[NSNib _initWithNibNamed:bundle:options:] 无法加载 nibName: NSCollectionViewItem 捆绑包(空)。

其次是堆栈跟踪。

那么我如何去创建和使用一个NSCollectionViewItem没有子类化或以任何方式修改的?

0 投票
2 回答
428 浏览

objective-c - NSImageView 上的 NSCollectionViewItem 选择,带有 CALayer 的图像边框

我有一个带有 NSImageView 的 NSCollectionViewItem。

我想在图像周围有一个阴影。选择后,我希望图像具有阴影和边框。目前, NSImageView 获取图像周围的边框。

如何在选择上实现阴影+边框?似乎图像周围的边框设置正确,但边框设置在图像视图周围。

0 投票
1 回答
430 浏览

nscollectionview - 为什么 NSCollectionView.makeItem 有时会因 EXC_BAD_ACCESS 而崩溃?

出于某种原因,我的应用程序在几个月没有这样做之后才开始这样做。这是在看似无关的使用后弹出的OperationQueue(我总是使用main,所以它是在线程 1 上完成的)。

六次尝试调用同一个 collectionView.makeItem 函数,第四次失败,原因是:EXC_BAD_ACCESS

如您所见,我连续调用了 6 次完全相同的函数,只有第 4 次失败。没看到图案。。。

0 投票
1 回答
1626 浏览

objective-c - 如何在 NSCollectionView 中正确显示当前选择?

我有一个NSCollectionView正在显示一些图像。我已经实现了一个NSCollectionViewDelegate告诉它应该选择和/或突出显示哪些项目。我正在使用股票NSCollectionViewItem来绘制图像及其名称。当用户选择一个项目时,我的代表会收到有关突出显示状态更改的消息:

我为didSelect/做了类似的事情didDeselect

NSCollectionViewItemsview中,我执行以下操作:

我看到的问题是绘制突出显示或选择似乎是随机的。当它绘制选择时,它几乎总是在用户实际选择的项目上(尽管由于某种原因它经常忽略最后一个项目)。有时,它会选择用户没有点击或拖过的不同项目。但是,通常它只是不绘制。

我添加了打印以验证它是否正在调用-didChangeItemsAtIndexPaths:toHighlightState:-didSelectItemsAtIndexPaths:. 我在这里做错了什么吗?

我在视图的-drawRect:方法中添加了一些日志记录,即使我-reloadItemsAtIndexPaths:-didChange*方法中调用,它似乎也没有在所有转换中被调用。为什么不?

我还注意到,委托-should/didDeselectItemsAtIndexPaths:似乎从未被调用过,即使-should/didSelectItemsAtIndexPaths:确实被调用过。这是为什么?

0 投票
1 回答
354 浏览

swift - NSCollectionViewItem 的圆角

简单的问题,但我找不到任何答案...如何更改NSCollectionViewItem实例的角半径?

0 投票
1 回答
1187 浏览

macos - 自动调整 NSCollectionViewItem 的大小以适应屏幕

我正在尝试创建一个 NSCollectionView ,它的项目适应可用空间,而不是为项目定义固定大小并相应地调整 NSCollectionView 的大小。

我想不出用 NSCollectionViewFlowLayout 实现这一点的方法,因为它的项目需要固定大小。使用 NSCollectionViewGridLayout,我非常接近预期的结果。但是,我需要 CollectionViewItems 在缩放包含 NSCollectionView 的窗口时保持它们的纵横比(正方形),而 GridLayout 会根据它们的 min 和 maxItemSize 缩放项目。根据窗口大小和集合中的项目数量,我最终会得到不完全是正方形的项目。

示例截图:扭曲的 NSCollectionViewItems

我可能可以通过在网格中设置 maximumNumberOfColumns 来解决这个问题,具体取决于集合中的项目数和窗口大小,但这似乎有点麻烦。有没有更好的方法来实现所需的布局?也许使用自定义 NSCollectionViewLayout?