带有网络图像的NSCollectionView

时间:2014-03-27 00:07:02

标签: macos cocoa cocoa-bindings nscollectionview nsvaluetransformer

我有一个NSCollectionView,其中一个子视图是NSImageView。实际图像需要在通过API调用后从Web服务器加载(实际上是两个网络请求)。显然我需要异步加载图像。我可以将NSImageView的值绑定到NSValueTransformer,将模型ID转换为NSImage,但如何实现NSValueTransformer?它希望立即从transformedValue:方法返回,而我只能在那里发出网络请求。我不想使用同步网络来阻止线程。

1 个答案:

答案 0 :(得分:2)

不是使用实际上会立即返回的NSValueTransformer,而是继承集合视图项。对于每个项目异步触发此子类中的事务。 在子类中保留NSImage的IBOutlet,以便在从服务器jus收到响应时,使用此IBOulet设置Image。 使用此方法创建项目时,相应的视图控制器将进入画面。对它进行子类化可以控制视图以及如何加载视图。

我希望这会有所帮助。