问题标签 [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.
objective-c - 子类化 NSCollectionView 后的绘图问题
好的,这就是我所做的:
- 我有一个
NSCollectionView
- 我希望能够启用“选择”项目,并在选择项目时绘制自定义边框
- 我子类化
NSCollectionViewItem
(以启用选择) - 我
NSView
为NSCollectionViewItem
视图子类化,以绘制边框
编码
查看项目
自定义视图
但是,绘图似乎有问题。例如:
- 调整 Collection View 的容器大小时,外框出现一条奇怪的线
- 当 Collection View 项目不是 100% 可见时(例如,因为它已被向下滚动),选择边框根本不会出现(而我希望它只绘制可见部分)。
一些例子
这是怎么回事?
PS我不是 Cocoa 中绘图和自定义视图的专家 - 所以任何想法/帮助都非常受欢迎!
objective-c - Cocoa - 如何以编程方式更改 NSCollectionViewItem 的大小和布局?
我想用 3 个按钮以编程方式更改 NSCollectionView 的布局,每个按钮将更改集合视图的布局 - 每行 2、3、4 列。并且 NSCollectionViewItem 的大小必须自动调整大小。
我尝试搜索一整天,但没有发现任何帮助。任何帮助,将不胜感激。
谢谢
objective-c - 单击 NSCollectionView 总是返回相同的对象
我有一个NSCollectionViewItem
子类,称为MyItem
used as item of my NSCollectionView
. 我需要枚举我的集合视图中的所有项目,以使用以下代码为每个项目设置委托:
使用调试器,我看到这段代码在我的方面工作,并且在每次迭代中每次都MyItem
指向不同的对象。问题是当我在课堂mouseDown
上使用事件时,MyItem
无论我点击什么项目,我都会收到相同的对象NSCollectionView
。似乎集合视图只使用一个类(单元格模板实例?)。有人知道发生了什么吗?谢谢
objective-c - 在 NSCollectionView 项目视图操作中获取表示的对象
这是我所拥有的:
- 一个
NSCollectionView
- 通过填充
NSArrayController
- 每个“项目”(
NSCollectionViewItem
) 在附加视图中显示其内容 - 该视图包含一个
NSButton
现在,问题:
当用户单击按钮时,我怎么知道代表的对象是哪个?(附加到按钮所属的特定视图的项目)
PS我显然可以做类似的事情:
但它看起来一点也不好看——尽管它确实有效。
想法?
cocoa - 更改 NSCollectionView 的选择行为
在我的 Mac 应用程序中,我有一个启用了多选的 NSCollectionView。在我的应用程序中,能够选择多个项目是常态,并且在单击选择多个项目时必须按 cmd 让一些用户感到沮丧,并且大多数用户没有意识到他们可以做到这一点(我收到了很多要求的功能请求多选)。
所以,我想改变行为,以便:
- 当用户单击第二个项目时,第一个项目保持选中状态(无需按住 cmd)
- 当用户单击所选项目时,该项目被取消选择
我尝试在我自己的 NSCollectionViewItem 子类上覆盖 setSelected,如下所示:
需要调用 super setSelected 以确保集合视图正常运行,但它似乎也是导致默认行为的原因。
我应该怎么做?
xcode - 如何在 NSCollectionView 中创建组?
如何将部分添加到 NSCollectionView?
objective-c - 来自 NSCollectionViewItem 的弹出框序列
TL;WR
从克隆视图(NSCollectionViewItem)弹出转接的最佳方法是什么?
下午好,
我试图弄清楚如何从 itemPrototype 中分离出来,但它并不像我希望的那样直截了当,并且在某种程度上让我绊倒了。
我有一个 NSCollectionView,有可变数量的 NSCollectionViewItem,每个都有一个按钮。我希望所有我需要做的,从按钮到一个小信息窗口,将通过弹出框连接将该窗口连接到按钮,但幸运的是,这不是这样做的.
我假设因为 NSCollectionViewItem 原型上的按钮被克隆以填充 NSCollectionView,所以当它被调用时,它会将混合消息传递给 segue。具体来说,当我按下其中一个按钮时,我收到以下错误。
首先,我从中得到的是一种恐惧感。另外,我真的不认为它喜欢克隆(一定是阴暗面)。
我一直在寻找通过情节提要创建此弹出框转场的替代方法,但看起来这可能不是一个常见问题(或者我仍然不习惯相对少量的 OS X 开发人员)。
具体来说,我的问题是:我如何从 itemPrototype 中“做”一个弹出框转义?我绝对可以以编程方式执行此操作,但我之前没有在 Objective C 中编写过 gui 代码,所以我想知道在我尝试弄清楚之前,这样的 segue 绝对是可能的。由于技术上的不可能,我不想最终把头发拉出来。
感谢您抽时间阅读!我很感激你能给我的任何信息,如果我能提供更多细节,请告诉我,让我的问题更清楚。
迈克尔
编辑 [2015-05-15 18:59]
为了帮助说明我的要求,下面是两张图片;我的集合视图的示例,以及我想应用于集合视图中的项目的弹出框的示例。我希望这会有所帮助,尽管我可以看到它可能会有些混乱,所以如果您有任何问题,请告诉我。
编辑 [2015-05-15 19:08]
以上两张图片可能不足以解释我希望实现的目标,因此以下是我最终目标的代表。希望这将澄清一切。
迈克尔
macos - 如何使用具有自调整边距的居中项目实现 NSCollectionView?
假设我在集合视图中有一个项目,该项目将在第一行的集合视图中居中。
并且对于多个项目,所有这些项目将在集合视图中水平分布,它们之间有适当的间距。
如果集合视图的大小发生变化,项目之间的间距将同时更改以适应集合视图的新大小。
的默认行为NSCollectionView
在左侧对齐项目,多个项目之间没有间距。
我应该使用layoutManager
集合视图的图层来布局项目吗?
由于我使用数据绑定来提供项目,因此插入约束似乎并不容易。
objective-c - NSButton 绑定到 NSCollectionViewItem:representedObject?
当我在 NSCollectionViewItem 的视图中预先添加一个按钮时,我可以在检查器中绑定它的操作:
哪个工作没有问题。
现在我想在视图中以编程方式创建该按钮mouseDown:
,我应该bind:
为与检查器中的“绑定到:集合视图项”相同的结果分配什么选项?
这是代码:(斯威夫特)
编辑:我可以通过子类化 NSCollectionView然后覆盖newItemForRepresentedObject:
将代表对象分配给子类视图来做到这一点。
仍然想知道是否有没有子类化 NSCollectionView的方法。
cocoa - NSCollectionView 不显示任何内容
我尝试遵循本指南:
在集合视图项中使用 NSImageView。
什么都没有出现,如果我用 Image Well 设置图像,也没有通过代码设置数组。
所以我尝试以编程方式进行,使用
在集合视图项(子类)中。
如果我不继承 Collection View Item Xcode 告诉我没有原型集,如果我将它子类化它会告诉“无法加载 nibName”......(它在故事板中具有正确的身份集)
我不能让这个集合视图工作:-(
无论如何,我喜欢绑定...所以我想通过绑定获得正确的结果。我检查并重新检查了链接中文档中的每个段落,一切似乎都很好。主要区别在于文档使用应用程序委托,我使用的是视图控制器。
我迅速翻译了 KVC 方法,我认为它们是正确的,因为我知道它们已被调用。他们是: