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

objective-c - 即使调用了所有正确的方法,NSView 的上下文 NSMenu 也永远不会显示

我有一个里面NSCollectionView有一堆NSViews ,垂直堆叠,使它看起来有点像UIKit's UITableView。一切都按预期工作,除了一件事:

当右键单击任何一个NSViews 时,我希望NSMenuI set to be viewmenu会显示出来,但是很遗憾 - 什么也没有发生。

疯狂的部分是所有正确的方法都被调用了,正如预期的那样:-rightMouseDown:-menuForEvent:finally -menu

当我将任何对象设置为NSMenu's时delegate不会调用它,所以在我看来,Apple 方面的某些事情发生了故障,就在请求's和实际显示它之间。menuWillOpen:menu

有人能对此有所了解吗?

提前致谢。

PS。对于它的价值,NSMenu我手动(不依赖于 Apple 的右键单击处理)使用popUpMenuPositioningItem:atLocation:inView: 显示

编辑/更新/澄清

NSCollectionView问题的是在单击NSWindowan 时显示的内部NSStatusItem,例如 CoverSutra/TicToc/what have you。子类的一些代码MyWindow NSWindow

presentFromPoint:是我用来从我喜欢的任何一点呈现它的方法,就我而言,是从NSStatusItem. (与此问题无关)

顺便说一句,我的应用程序已设置为,因此LSUIElement它不显示菜单栏或 Dock 图标。它位于状态栏中,并在单击时显示一个窗口。Info.plistYESNSStatusItem

视图层次结构如下:

MyWindow=> contentView=> NSScrollView=>NSCollectionView

NSCollectionView有一个NSCollectionViewItem连接到它的属性的子类itemPrototype,并且NSCollectionViewItem子类有一个NSView连接到它的view属性的子类。反过来,子类与它的属性NSView有一个NSMenu连接。menu最后但并非最不重要的一点是:里面NSMenu有一个。NSMenuItem

NSCollectionViewItem到目前为止,子类和子类都NSView没有做任何有趣的事情,它们只是空的子类。

NSMenu连接到NSView' 的属性是右键单击menu时应该显示的内容,但我希望我已经说清楚了:它实际上并没有显示。NSView

更新

我仍然不知道是什么导致了这个问题,但我决定从 '继续' NSCollectionView,因为它并不真正适合我想要做的事情,我现在正在使用TDListView它就像一个魅力。

0 投票
1 回答
615 浏览

objective-c - NSCollectionViewItem 的项目出口的 NSView 子类没有一致地绘制

我到处寻找这个但没有运气。我在我的项目中使用 NSCollectionView 通过数组控制器绑定到核心数据。为了让它看起来像我想要的那样,我用一个新的 drawRect 方法对 NSView 进行了子类化,并将它与 NSCollectionViewItem 的视图出口连接起来。一切正常,绑定很好,但由于某种原因,它只会在集合视图中的第一个项目上执行自定义绘图。我猜这与 NSCollectionView 在创建新项目时复制笔尖的事实有关。首先是我的 drawRect: 方法:

@结尾

有任何想法吗?

0 投票
1 回答
2276 浏览

objective-c - 使用没有绑定的 NSCollectionView

有没有办法使用NSCollectionView没有绑定的?

0 投票
1 回答
442 浏览

objective-c - NSWindow 在单击、调整大小等之前不会绘制

我有一个通过 Interface Builder 创建的带有 NSCollectionView 的窗口。有一个 NSArrayController 绑定到 CoreData 后备存储,该存储在启动时通过触发异步请求来填充。NSCollectionView 到 NSArrayController 等的绑定似乎都已经到位;但是,在单击窗口、调整大小等以强制重绘之前,窗口会显示并且是空白的。

这是我尝试过的一些事情,没有任何明显的变化。(这些在 NSWindowController 类中)

1) 使用 KVO 监控 CoreData 提取何时完成。在这一点上,我已经尝试了以下所有方法:

2)添加了一个 NSProgressIndicator,在启动时隐藏 NSCollectionView,然后在加载完成时(再次通过监视 KVO),我隐藏进度指示器并显示集合视图。

有人对我在这里做错了什么有提示/线索吗?

似乎把事情搞砸了。

0 投票
2 回答
2721 浏览

cocoa - 带有部分的 NSCollectionView - 就像在 iPhoto 中一样

我想构建一个类似于 iPhoto '11 中的 NSCollectionView。我想将几张图片分组,并创建一个节标题。特定节的节标题始终可见,直到该节的最后一个元素可见。你可以看一下图片,看看我的意思。

编辑:我应该补充一点,内容不是图像。

在此处输入图像描述

提前致谢

0 投票
1 回答
106 浏览

cocoa - 如何保存 NSCollectionView 的内容?

我有一个 nscollectionview,其中包含用户可以添加/删除的集合项。每个collectionitem 包含一个textview 和一个imageview。我已经设法使用 NSSavePanel 将字符串保存到文件中,但是如何获取 textview 和 imageview 的内容,以便我可以通过遍历保存集合项的数组将它们保存到数组中?

或者

有没有更好的方法来保存 collectionitem 的内容?

谢谢

0 投票
0 回答
144 浏览

cocoa - 您如何访问收藏品中的插座?

我有一个由集合项填充的 NSCollectionView。数组控制器用于将项目添加到视图中。每个项目都有两个出口,一个 imageview 和一个 textview(不是字段),用户可以自己编辑。您将如何访问每个集合项目中的插座,以便我可以将每个项目的内容保存到 plist 文件中?

0 投票
1 回答
236 浏览

cocoa - Cocoa Design:如何在 NSCollectionView 中突出显示员工的当前部门?

我有这个核心数据支持的数据库,其中包含许多员工示例中的条目:员工可以属于一个部门。一个部门有很多员工。我和所有员工都有一个 NSTableView(由 NSArrayController 支持)。我有一个 NSCollectionView(由设置为 selection.possibleDepartments 的 NSArrayController 支持)显示所选员工的可能部门。

我想突出显示该员工目前所在的部门

简单吧?

我怎么知道当前选择的部门是什么?我创建了一个具有“-(BOOL)isThisTheSelectedDepartment”的部门类 (DDDepartment) 的类别。在这个函数中,我调用应用程序委托给我主数组控制器。主阵列控制器给了我选定的员工。我问选定的员工这是否是他的部门。图像很少,它的隐藏属性绑定到representedObject.isThisTheSelectedDepartment 并取反。这不会更新 NSCollectionView (显然:P)有没有办法通过绑定来做到这一点?

谢谢

0 投票
2 回答
5717 浏览

objective-c - NSCollectionView 拖放:大多数委托事件没有被调用

我有一个绑定到 NSArrayController 的 NSCollectionView。我想让拖放工作,所以我创建一个委托并实现方法

我为两个 BOOL 方法返回 YES,为 validateDrop: 方法返回 NSDragOperationMove,为 namesOfPromisedFilesDroppedAtDestination: 方法返回一个空数组。我还有一个 NSLog 语句作为每个方法的第一行,所以我可以看到它们何时被调用。

现在,唯一被调用的方法是 canDragItemsAtIndexes: (我返回 YES)。我看到它被调用了,但是任何进一步的拖动只会修改选择。其余的永远不会被调用。

如果我使 NSCollectionView 不支持选择,那么甚至不会调用该方法。

我确定我错过了一些非常明显的东西,但我无法弄清楚它是什么。有没有人使用 NSCollectionViews 进行拖放并且可以阐明一些问题?

0 投票
0 回答
336 浏览

objective-c - Cocoa + CoreAnimation:自定义子视图的动画列表

几周以来,我一直在努力解决这个问题,虽然我从失败中学到了很多东西,但在这一点上,我只需要一个解决方案。问题在于解压缩 Cocoa 中包含的看似重叠的图形和 UI API,其中许多会产生类似的效果,但具有独特的局限性,我经常在投入大量时间实施后才发现这些局限性。

我是 Cocoa 的新手,但不是编程新手,我正在尝试创建一个具有非常定制的 UI 的 Mac 应用程序——想想 Capo、Garageband 或 Billings。我窗口中的一个视图将显示一个有序的子视图列表,每个子视图都进行大量自定义绘图,并且每个视图都必须支持“选定”状态和拖动重新排序。子视图不需要支持被拖到其父视图之外。

理想情况下,拖动会在发生时给出动画反馈,推动相邻的同级视图以腾出空间,例如工具栏图标或 Safari 书签栏。问题是,我似乎无法找到正确的技术包来做到这一点。我已经将子视图作为 NSCollectionView 中的 NSView 子类以及自定义 CollectionView-like NSView 中的 CALayers 完成,但似乎都没有提供完美的解决方案。也就是说,第一个选项似乎在两者中更好,因为它对鼠标事件的出色处理。

我还没有尝试将其作为 TableView 执行,并且我不想在没有任何迹象的情况下沿着这条路走下去,我在正确的轨道上。广泛的谷歌搜索仅表明在启用 CoreAnimation 的重新排序或拖动方面没有任何最新资源。作为 OS X UI 的标准功能,我觉得这应该更容易!

任何人对这项工作的正确工具的任何帮助将不胜感激。TIA。