IKImageBrowserView似乎无法正确绑定

时间:2010-07-20 06:39:59

标签: objective-c interface-builder cocoa-bindings ikimagebrowserview

我的问题涉及Interface Builder和IKImageBrowserView没有像我期望的那样实现绑定。

我有一个相当长的密钥路径来获取NSArrayController,我希望在IKImageBrowserView中显示其内容。

这是我绑定NSTextField的显示模式绑定到的关键路径: AppDelegate的currentOrder.imagesArray.unvalidatedImages.arrangedObjects.@count。 这很好,并且给了我属于当前订单的图像数组中未经验证的项目的数量,这是它应该的。

当我尝试将以下关键路径绑定到AppDelegate的IKImageBrowserView的contentcurrentOrder.imagesArray.unvalidatedImages.arrangedObjects时,Interface Builder不会出现任何错误,而是表现为我没有输入任何内容。当我单击返回检查器时,绑定键路径再次为空白。

但它会将以下内容记录到控制台: Ignoring exception related to working with bindings: NSUnknownKeyException, [<NSCustomObject> addObserver:<IKImageBrowserView ...> forKeyPath:@"currentOrder.imagesArray.unvalidatedImages.arrangedObjects" ...] was sent to an object that is not KVC-compliant for the "currentOrder" property.

我的AppDelegate在保留@property时实现currentOrder,所有子键也是@properties。我可以肯定这些属性是KVC好的,因为上面的NSTextField能够毫无问题地读取更改。有趣的是,IKImageBrowserView的selectionIndexes能够绑定到...unvalidatedImages.selectionIndexes,只有content不能绑定。{/ p>

我已经实现了一个解决方法,我在我的nib文件中放置了一个NSArrayController,并将内容数组绑定到...arrangedObjects,然后将IKImageBrowserView绑定到数组控制器,但非常乐意有一个更整洁的解决方案,或者至少要知道我做错了什么。

谢谢!

1 个答案:

答案 0 :(得分:1)

您是否尝试在应用委托中实施<IKImageBrowserDataSource>的方法,并使用_dataSource连接而不是绑定?这对我有用,并且Apple tutorial你是如何做到的。

您基本上只需要实现– numberOfItemsInImageBrowser:– imageBrowser:itemAtIndex:来提供数据,这不是太糟糕。稍微棘手的部分是实现一个<IKImageBrowserItem>类来包装你的数据,但即使这样也不需要大量的努力。上面链接的教程应该有很多帮助。