问题标签 [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 - 为什么我在 NSCollectionViewItem'view 中的 NSImageView 为零?
在 IB 中,我创建了一个NSCollectionView
和它的NSCollectionViewItem
和NSView
属于的一个。NSCollectionViewItem
我NSCollectionItem
由一个NSImageView
和一个组成NSTextField
。我使用可可绑定设置它们的值。我想更改选择NSImageView
时的边框颜色。我NSCollectionItem
为所有这些创建自己的类和在 IB 中设置他们的自定义类。在NSCollectionViewItem
类中我重写了它的 setSelected:(BOOL)flag
功能。代码是
我想在NSView
调用它的绘图函数时更改边框颜色。在NSView
我创建的类IBOutlets
中NSImageView
,NSTextField
将它们与 IB 连接起来。但是当调用绘图函数时,我使用代码
结果为nil。为什么我无法获取所选NSCollectionViewItem 的imageView?我在哪里犯了错误?帮帮我,谢谢!
macos - NSCollectionView 不动画重新排序
我正在使用滑块更新我的收藏项目的项目大小
但是我不希望重新排序动画发生(单元格应该只出现在它们的新位置上)
cocoa - 在 NSCollectionViewItem 视图中单击
我是 Cocoa 开发的新手,所以很多概念对我来说都不是很清楚......我正在尝试构建一个简单的应用程序,它将使用 Flickr API 来检索用户照片集并通过单击它们在 NSCollectionView 中显示它们,将开始下载照片集的照片。
我正在使用 Xcode 5.0.1 和最新的 SDK,即 10.9
在阅读了一些关于如何使用绑定处理 NSCollectionView 的文章后,我现在面临另一个关于处理 NSCollectionViewItem 中的事件的问题。
据我了解,鼠标事件可以通过实现轻松处理
在 NSView 子类中,说
并将视图自定义类分配给我在InterfaceBuilder中创建的子类(MyViewController)。
现在,我可以按照上述方式进行操作,并且 mousedown 在大多数小部件中都按预期进行了处理。问题是,我有一个 NSCollectionViewItem 子类,如下所示:
我正在尝试在那里实现 mousedown 方法,该类在单独的 nib 文件中设置为文件所有者。当 NSCollectionView 加载时,视图将自动加载。
现在,MyItemController 不能作为 IB 视图对象中的客户类,这显然是因为它不是 NSView 子类而是 NSCollectionViewItem 子类。
如果我编写 NSView 的子类并制作视图对象的自定义类,我可以获得鼠标按下。但是,我无法通过这种方法获得 NSMutableArray 的代表对象和索引,它们是我需要的基本信息。
所以我的问题是,处理 NSCollectionViewItem 的鼠标事件视图的正确方法是什么?我在 GitHub 中的代码:
https://github.com/jasonlu/flickerBackupTool
谢谢!
更新
我发现解决这个问题的一种方法是通过继承 NSView 并实现 mousedown 并使用超级、子视图来获取和索引以及数组本身
这似乎可行,但如果这是最佳做法,我不起诉,它看起来过于依赖视图并且需要很长时间才能到达阵列。
objective-c - 在 NSCollectionView 中绑定 NSTableView
我已经能够成功地将我的视图绑定到NSCollectionView
,但是我的模型没有正确绑定到视图本身。我的模型包含一些属性:
我能够以编程方式在我的模型类中绑定一个数组控制器,它会成功绑定到数据数组:
我能够成功地将我的模型数组绑定到NSCollectionView
绘制视图的模型,但是我想将模型绑定到视图中的每个单独NSMutableArray
的NSTableView
视图。我认为没有办法以编程方式执行此操作,因为您绑定到Collection View Item.representedObject
. 我觉得你做不到Collection View Item.representedObject.dataArrayController.arragnedObjects
?
cocoa - isOpaque 不会停止传递给父母 drawRect
我遇到了 Cocoa 及其视图重绘层次结构的问题。
我目前正在测试仪表样式控件中的显示(音频)级别,并且我正在使用来自苹果的 MatrixMixerTest 示例项目的 MeteringView 类。这个类正在绘制仪表,只绘制变化的差异,这看起来是一个非常有效的类。
我的项目分为 2 个拆分视图,其中一些是 NSCollectionViews(滚动视图、剪辑视图),而另一些只是静态视图。如果我将仪表添加到那些“静态”视图中,当这些视图调用 setNeedsDisplay:YES 时它们可以正常工作。如果将仪表添加到 CollectionView 项目的视图中,它会被渲染,但会丢失其绘制的“旧级别”部分及其角/背景。我认为发生这种情况是因为 CollectionView 项目也被称为重绘(具有背景图像)并且一切都消失了。它正在绘制一些当前正在变化的部分(绘图作品)。
有没有办法防止 Item 本身被重绘?或者,我不知道为什么在那些静态视图中没有发生这种情况,因为这些视图也有背景图像,但不会在仪表上绘制。
CollectionView 中是否有一些技巧或与“正常”视图中的不同之处?
编辑:阅读有关 isOpaque (MeteringView isOpaque = YES) 后意味着如果设置为 yes,则不应调用父视图 drawRect。好吧,这适用于静态视图,那些 MeteringViews 不调用父母 drawRect,但是 CollectionView 中的那些。我不知道为什么。
编辑 2:我给这个主题另一个标题,因为 MeteringView 中的 isOpaque=YES 并没有停止在 CollectionView 中调用父母 drawRect,在正常视图中它正在工作。有什么需要了解的吗?我必须停止重绘 CollectionView 项目,因为这就是问题所在。
提前谢谢各位
本杰明
objective-c - Cocoa-在 NSCollectionView 中为 NSButton 使用代表对象
设置
我有一个NSCollectionView
. 我在View Prototype
. 我已经成功地设置了绑定,所以Card Title
并action
得到了填充。(下图1)
目标
当我单击复选框时,我想运行一个函数来访问已经能够访问的特定CardModel
内容。View Prototype
然后我会相应地操作它的数据。
研究
我在 SO 上找到了这篇文章:获取 NSCollectionViewItem NSButton click 的代表对象值,它很好地描述了我的情况。不幸的是,答案是没有特定的代码。以下是建议:
因此,首先,将按钮单元格的表示对象设置为拥有该按钮的集合视图项。(您可以在 nib 编辑器中执行此操作。)然后,在您的操作方法中,获取按钮的单元格,然后是单元格的表示对象(即项目),然后是项目的表示对象。
看起来很简单,对吧?
尝试的解决方案
我创建了一个方法cardCheckBoxClicked:
并将其连接到复选框。
根据上面的建议,我将button cell
的插座连接representedObject
到Card Collection View Item
. (图2)
然后我尝试在代码中获取Card Collection View Item
's 。representedObject
来自MainWindowController.h
:
错误
当我单击复选框时,我收到以下错误:
问题!
那么 -我如何访问button cell
's 表示的对象?我误解了上面给出的建议吗?如何成功访问我需要的数据?
图片(参考)
绑定示例
表示对象连接
objective-c - NSCollectionViewItem 按钮总是从 ArrayController 返回第一个项目
我有一个 NSCollectionView,其中 NSArrayController 绑定到 NSCollectionViewItem。
Item 本身包含按钮(Item 的整个空间)。
单击按钮时,我试图确定单击了哪个项目按钮,但不能:
总是返回第一个项目的名称。
如何确定单击了哪个项目的按钮?
objective-c - Xcode:NSCollectionViewItem 没有名为 imageView 或 textField 的插座
我想将我的 xib 图形用户界面中的 imageView 和 textField 链接到来自 NSCollectionViewItem 的所属 Outlets(这是应用程序工具包中的一个元素)。但是在链接绑定时会弹出以下消息:
“Xcode 无法在 NSCollectionViewItem 类中找到名为 @property (assign) IBOutlet NSImageView *imageView NS_AVAILABLE_MAC(10_7); 的键值编码兼容属性。”
所以,对我来说,不可能连接这些对象。因此,我没有得到文本字段或图像视图的任何引用插座。
在另一个 xib 中已经存在相同的绑定。但是它们标有白色感叹号,并且还显示一条奇怪的消息:“NSCollectionViewItem 没有名为 imageView 的插座。”
有谁知道如何解决这个问题?会很好。
macos - 带有自定义视图的 NSCollectionViewItem
我一直在努力尝试创建一个具有一组 NSCollectionViewItems 和自定义视图的 NSCollectionView。当项目视图上的控件是标准 AppKit 控件时,代码可以正常工作,但是一旦我添加了自定义 NSView,就无法从 Interface Builder 绑定它。
花几个小时在互联网上搜索,似乎有很多选择可以解决这个问题,但似乎都很专业。是否有一些简单的示例代码演示了如何在项目视图上给定一个 CustomImage * 来在该自定义视图上设置图像属性?
为每个项目提供数据的模型是:
NSCollectionViewItem 子类是:
其中 CustomImage 只是 NSImageView 的子类。
我尝试继承 NSCollectionView 并覆盖 newItemForRepresentedObject 作为一些建议的答案并在那里分配:
但这只是在绑定调用中爆炸,出现“名称”不存在的错误。
从理论上讲,这应该是一件非常简单的事情,但我找到的答案都没有说明这一点。另一种方法是放弃 NSCollectionView 并使用 GitHub 上更简单的替代品之一,但我想最后一次尝试看看这是否可以首先解决。
谢谢!
cocoa - Cocoa - NSCollectionView 和 NSCollectionViewItem 之间的链接在哪里?Xcode 6 错误?
当你将一个 NSCollectionView 拖到一个视图上时,一个 NSCollectionViewItem 会出现在情节提要上,四处飘荡。
想象一下,我将几个 NScollectionView 拖到同一个视图中。我会有一堆 NSCollectionViewItems。集合视图如何知道哪个 NScollectionViewItem 属于它?在界面生成器上可以看到两者之间是否存在联系?我在界面生成器上看不到任何内容?我在哪里可以看到?
编辑:显然这似乎是一个 Xcode 错误。当您将 NSCollectionView 添加到情节提要时,它没有指向 NSCollectionViewItem 的链接,并且似乎无法在它们之间连接 itemPrototype 插座。
在就此类错误与 Apple 联系后,他们的回答是:“这是 OS X 上 Storyboards 的一个已知问题。请改用 Xibs。”