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

objective-c - 大型数组上的 Valueurl 绑定导致用户界面缓慢

我有一个通过 HTTP 从远程服务器返回的大型数据集(大约 3500 个对象)。目前,数据正在 NSCollectionView 中呈现。数据的一个方面是到服务器的路径包,用于表示数据的小图像(为简单起见,请考虑缩略图)。

Bindings 非常适合已经返回的数据,并且通过 valueurl 绑定来绑定图像很容易。但是,当滚动浏览数据集时,用户界面非常缓慢——这让我认为这NSCollectionView是在检索所有图像数据,而不仅仅是用于显示当前可见图像的图像数据。

我的印象是 Cocoa 控件足够聪明,只能检索通过延迟加载实际输出到用户界面的信息的数据。这当然似乎是这种情况NSTableView- 但我可能会被这个想法误导。

valueurl 绑定应该懒惰地行动,而且,它应该在NSCollectionView?

我可以创建一个缓存机制(实际上我已经为另一个应用程序准备好了这样的东西 - 如果你有兴趣使用来自异步 NSURLConnection 的数据填充 NSImage ,请参阅我的帖子)但我真的不想走这条路线如果对于这个特定的实现,我不必这样做,因为用户可能会经常更改数据集,并且可能只需要数据的小子集。

有什么建议的方法吗?

谢谢!

更新

经过更多测试后,似乎出现了问题,因为通过数据集的滚动操作会导致从服务器请求每个图像。一旦所有图像都在数据集中传递,响应非常快。

所以问题......有没有办法在滚动时关闭valueurl fetch并在滚动完成后重新打开它?

0 投票
1 回答
305 浏览

cocoa - 一种使用 NSCollectionView 将事件转发到多个视图的方法

我正在尝试将集合视图中的键盘事件转发到它包含的所有视图。我已经尝试弄清楚如何获取视图数组,以便我可以将事件转发到每个视图,但我找不到这样做的方法。我觉得我这样做是错误的。任何方向表示赞赏。

谢谢,

查理

0 投票
1 回答
470 浏览

cocoa - 如何模仿Automator的工作流视图?

我开始开发我的第一个成熟的 Cocoa 应用程序,其中包含一个我希望其行为(和外观)类似于 Automator 的AMWorkflowView.

我想实现的基本功能:

  • 子视图的定位
  • 以展开/折叠状态显示子视图
  • 多项选择
  • 拖放

为了习惯 Cocoa,我从一个自定义开始,NSView它主要用作自定义子视图的容器,并处理它们的定位和多选。子视图也是 的子类NSView,它们本身包含可变数量的视图,如按钮、标签和弹出菜单,因此可以有不同的高度。这工作得很好,但在继续之前,我想确保根据 MVC 模式让所有东西都整齐有序。

我怀疑 Cocoa 中已经有一个类可以促进视图容器的实现,比如可能NSCollectionView. 不过,似乎没有(简单的)方法可以在 中显示不同大小的视图NSCollectionView。我应该继续实现我的自定义NSView(可能使用NSArrayController选择和排序支持),还是有更好的方法?

任何帮助深表感谢

0 投票
1 回答
888 浏览

objective-c - 尽管 setNeedsDisplay,NSCollectionView 子类在拖动会话期间不调用 drawRect

问候,

我对在NSCollectionView子类中应该如何以及何时调用drawRect感到困惑。

我实现了拖放操作,以便在集合中移动NSCollectionViewItems,并希望绘制一个视觉指示来指示拖放的结束位置。

子类在拖动会话期间不调用 drawRect。(它在滚动期间发生)

这是预期的操作吗?欢迎任何有关如何正确实施此行为的提示。

以下代码的完整 xcode 项目可在以下位置获得:http: //babouk.ovh.org/dload/MyCollectionView.zip

此致

更新: 示例代码错误。对 registerForDraggedTypes 的调用使集合按预期触发 drawRect。

代码示例:

0 投票
3 回答
2601 浏览

objective-c - 在 NSCollectionView 子类中接受拖动操作

我已经对 NSCollectionView 进行了子类化,并且正在尝试从 Finder 接收拖动的文件。我正在接收draggingEntered:并返回一个适当的值,但我从来没有收到prepareForDragOperation:(也没有在此过程中之后的任何方法)。我在这里有什么明显的遗漏吗?

代码:

0 投票
1 回答
614 浏览

cocoa - 使用可可绑定在集合视图中的 Web 视图上显示网页

我尝试了此链接中给出的示例示例 - Collection View Programming Guide

这很简单,而且很有效。将其视为参考,我尝试了一个简单的应用程序,该应用程序将显示 Web 视图的集合视图,并在每个 Web 视图上显示一些网页。

模型类有两个属性:NSString *pageName 和 NSURL *pageURL。

然后,我按照上面教程中编写的每一步进行了必要的修改,但我被困在了这一步 -

如何将 Web 视图绑定到集合视图项?

在绑定选项卡中,它显示了三种可能性:可编辑、隐藏、工具提示,但这些都不起作用。

谁能建议我完成我的要求的方法?

谢谢,

米拉杰

0 投票
1 回答
727 浏览

cocoa - 如何在包含它的视图可见之前使 NSCollectionView 完成绘图?

我正在尝试清理我的应用程序(为 10.5 构建)上的 UI,而一件相当烦人的事情是,当我切换到库时,我重新加载了内容,并且显示项目的 nscollectionview 在淡出之前淡出旧内容新的。我不介意旧/新项目的淡入/淡出,但是我编程视图交换的方式应该使库重新加载在包含 nscollectionview 的 nsview 插入到主窗口之前发生.

以前有人遇到过这种问题吗?

这是应用程序的不同部分到库之间的交换如何进行的简化版本:

在主控制器中:

在库控制器中:

0 投票
1 回答
963 浏览

cocoa - NSCollectionView 中的项目索引

在我的集合视图中,我需要为每个项目生成一个索引。随着项目重新排序,我需要这个索引来更新它的新位置。

数据是托管 NSArrayController 中的核心数据实体。我最接近可能的解决方案是在实体类上实现此方法,然后使用presentedObject.dynamicIndex将其绑定到UI。

这个解决方案充其量只是粗略的,并且没有真正起作用,因为它不一定反映集合视图中的顺序。

任何人都有在 NSCollectionView 中生成或检索项目索引的模型/机制?

0 投票
1 回答
3980 浏览

cocoa - NSCollectionView 的清晰示例和最佳方法

我在网上找了这个,但我找不到任何关于如何成功实现 NSCollectionView 的清晰教程。我应该如何进行?

在 Interface Builder 中,我可以将一个 NSCollectionView 拖到主视图中,我看到文档窗口中还有另外两个新视图:我想一个是 collectionView 中的实际 NSView,另一个是每个的 NSView 原型将在集合中显示的元素。

但从现在开始,我不知道该做什么。

任何帮助将不胜感激,但无论如何提前感谢您。

——阿尔贝

0 投票
2 回答
542 浏览

objective-c - Cocotron 之前 OSX10.5 中 NSCollectionView 的替代品?

NSCollectionView在 OS X 10.5 中引入,但尚未在 Cocotron 中实现。

我正在尝试实现一个小型应用程序,该应用程序将允许为在线服务创建正确打包的数据文件,然后由管理员上传。更具体地说,用户将通过将输入和输出文件拖到窗口上来创建输入和输出数据对的集合。

目前的想法是用户拖动一个文件,从文件名中检测它是输入还是输出文件名(默认情况下,输入),然后将带有图标和文件名的视图添加到集合视图中。然后,将第二个文件放在“其他”图标上。

NSCollectionViewItem 的视图

但是,NSCollectionView在 10.5 之前的版本中没有出现,而且我的大多数用户都没有 Mac,所以我必须提供一个 Cocotron 构建的应用程序。不仅; 我还没有完全理解 KVC/KVO,我真的应该理解我的代码所做的一切。因此,我需要替代NSCollectionView.

我必须使用什么替代方法NSCollectionView(任何直观的解决方案都值得赞赏,不要被我的想法的上述描述所限制。)