问题标签 [nscollectionview]

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 投票
2 回答
2673 浏览

cocoa - 你如何初始化一个 NSCollectionViewItem?

我正在尝试设置一个在各个 NSCollectionViewItem 视图中具有自定义绘图的 NSCollectionView。我有一个需要在每个视图中绘制的图像,但我无法将视图链接回 Interface Builder 中的 NSCollectionViewItem 子类。是否有我可以与 NSCollectionViewItem 一起使用的 init 方法来执行初始化操作?我试图实现 copyWithZone,但我做错了,因为我得到了一些永恒的循环。目前,我发现与视图建立连接的唯一机会是在使用 -(void)setSelected:(BOOL)flag 更改选择之后。我想在视图中进行绘图,但我需要来自我的代表对象的图像作为我的源。我读到的与 NSCollectionView 相关的所有内容似乎都不完整。

0 投票
1 回答
370 浏览

objective-c - OS X (>=10.6) 上类似 Twitter 客户端的 NSCollectionView 实现?

我正在尝试将 NSCollectionView 子类化,它像Twitter那样模仿 UITableView 的行为。

我一直在尝试继承/破解AMCollectionView,它“功能少得多”。AMCollectionView 使用不可变数组将数据填充到项目中,然而,我设想的是一个类似于 table/list 的 twitter,它的数据数组是可变的,它应该像 UITableView 那样支持插入和删除。

顺便说一句,我仍在努力解决键值绑定的问题。感谢 NSCollectionView 的任何建议/解决方案/示例代码。

谢谢你。

0 投票
3 回答
2140 浏览

cocoa - 绑定到 NSCollectionViewItem 会导致 Xcode 崩溃

使用 XCode 4.1 时,每当我尝试使用 CollectionView 时都会遇到崩溃。

这些是我正在做的步骤:

  1. 在一个新项目中,编辑 MainMenu.nib 文件。
  2. 在窗口中添加一个NSCollectionView,其中也添加了一个Collection View Item,并且在新View中添加了一个新View
  3. 添加一个类似 NSTextField 的控件
  4. 选择控件,然后将检查器切换到绑定窗格。
  5. 尝试将某些内容绑定到集合视图项。在下拉菜单中选择集合视图项目后,将出现“内部错误”对话框。尝试从此对话框继续会使绑定窗格消失,直到您重新启动 XCode

这会发生在其他人身上还是只是我遇到的事情?有没有办法解决它以允许我在 XCode 或代码中绑定到 Collection View Item(我希望最终绑定到代表对象值)。

我试图创建一个自定义的 NSCollectionViewItem 子类,它使用一个单独的 nib 文件并将其设置为 NSCollectionView 的 itemPrototype,但后来事情变得非常错误。

0 投票
2 回答
2496 浏览

cocoa - NSCollectionViewItem 子类中的自定义插座

我觉得这是一项简单的任务,但我似乎无法让它发挥作用。我正在尝试使用带有自定义项目的 NSCollectionView。我在项目的自定义视图中添加了另一个 NSImageView,并将此视图子类化以添加连接到此附加 NSImageView 的自定义插座。

现在我重写- (NSCollectionViewItem *)newItemForRepresentedObject:(id)object了,因为有时我需要删除这个 NSImageView。

无论如何,additionalImageView 似乎是(nil). 这在某种程度上是显而易见的,因为 super 方法将返回没有自定义插座的默认 NSCollectionViewItem。

在这里做的最好的事情是什么?我读了一些关于该copy方法的内容,并尝试了:

但这行不通。那么,有没有办法在使用自定义 NSCollectionViewItem 时保留自定义插座?

任何帮助将不胜感激。谢谢!

0 投票
1 回答
916 浏览

cocoa - NSCollectionView 捏缩放

我试图通过实现在 NSCollectionView 中进行捏缩放-(void)magnifyWithEvent:(NSEvent *)event,但我不确定在此方法中要做什么。我得到了缩放量[event magnification],现在我需要刷新集合视图中的项目。

我认为我可以将其保存在一个变量zoomValue中,并覆盖该方法- (NSCollectionViewItem *)newItemForRepresentedObject:(id)object以调整每个集合项的视图的大小(但我认为这不起作用。无论如何我不知道如何触发“刷新”集合视图)。

有什么想法吗?谢谢你。

0 投票
1 回答
1447 浏览

objective-c - NSCollectionView 不显示其内容

我想要做的是在我的应用程序中创建一个简单的 NSCollectionView 并用图像填充它。

我已经设法在界面生成器中设计/链接所有内容,我尝试将一个数组加载到集合视图中,以便它在界面生成器中显示链接到它的视图(笔尖文件),但我没有运气所以远的。我无法让集合视图显示任何内容。

我遵循了我在 Google 上找到的 2 个指南,但它们似乎已被弃用,它们在 Xcode 4 中不起作用。

我很绝望,请帮助我。我只想让 NSCollectionView 显示任何内容。我正在运行 Lion 和 xcode 4.1

0 投票
1 回答
681 浏览

objective-c - NSCollectionView 中的 NSPopover(或没有)

我有一个自定义子类NSView,用于NSCollectionView. NSPopover当使用以下代码双击视图时,该视图会显示:

popover是一个IBOutlet(是的,它已连接)。

当视图正常放置在窗口中时,这可以正常工作,但是当视图位于集合视图中时,它不会显示。

[popover showRelativeToRect:[self bounds] ofView:self preferredEdge:NSMaxYEdge]确实被调用(我设置了一个断点)并且没有记录错误。

任何想法表示赞赏。

0 投票
2 回答
858 浏览

objective-c - NSCollectionView 的 setContent:内存管理

我有一个使用NSCollectionViewwhere[collectionView setContent:data];填充的对象,其中填充了所有相同自定义子类的对象。集合视图的项目原型是标准的,不是子类的。使用我的子类中的绑定填充集合项的视图。dataNSArrayNSObjectNSCollectionViewItemNSObject

现在问题来了,在使用 heapshots 分析我的应用程序时,我发现在使用集合视图打开窗口时内存有巨大的增加。Instruments 将这种内存增加精确到了[collectionView setContent:data];线路上。这种记忆永远不会被回收。有任何想法吗?

编辑:我像这样访问数据对象:

0 投票
5 回答
3238 浏览

cocoa - 获取 NSCollectionView 中视图的索引?

我已经使用基于视图的新 NSTableView 为 Mac OS X Lion 开发了一个应用程序,但是由于我想将整个应用程序移植到 Snow Leopard,我正在尝试找出模拟这种 tableview 的最佳方法。到目前为止,我已经创建了一个 NSCollectionView 并且一切都很好,除了我无法获取触发按钮单击事件的视图的索引这一事实。在 Lion 中,我具有以下功能:

所以我可以使用一种方法(我不记得它的名字)来获取 tableview 中视图的索引,比如

aView 是发件人的超级视图,但我找不到类似的集合视图...唯一“有用”的方法似乎是

(或类似的东西),但这无济于事,因为它返回一个 NSCollectionViewItem ,我什至无法访问它只知道相应的视图!

0 投票
1 回答
801 浏览

objective-c - 设计问题:核心动画、NSCollectionView 和 NSCollectionViewItems


我正在为一个设计问题而苦苦挣扎:我有一个NSCollectionView包含多个项目的 an (它绑定到 an NSArrayController,而后者又绑定到 a NSManagedObjectContext)。我决定以编程方式为每个单个项目绘制视图,主要是因为我注意到NSView当集合视图中有超过一定数量的项目时,在 Item View 中嵌套几个 s 会产生性能问题。
考虑以下层次结构:NSCollectionView=> NSCollectionViewItem-> NSView。(由 使用的默认值NSCollectionView)。我的自定义NSView包含几个层,一些是CATextLayers,另一些是常规s,并且它们都在需要时CALayer一起(在同一个)动画。CATransaction这里的问题是每个CALayer需要显示一些数据的内容,这些数据可以通过...的representedObject属性访问NSCollectionViewItem,它拥有NSView!我有两个选择(可能更多,我对建议持开放态度): - 我将from
复制到 its ,并在程序执行过程中保持一致。我不是很喜欢这个。 - 我在 s 中公开s ,并在's方法中设置它们的内容/字符串。我更喜欢这个,因为其中没有保存数据(当然,通过图层显示的数据除外)。 我错了吗?有没有更优雅的解决方案?representedObjectNSCollectionViewItemNSView
CALayerNSViewNSCollectionViewItemsetRepresentedObject:NSView

在此先感谢,我真的很感谢您的帮助。干杯

吉安·马可