0

我的问题与 Interface Builder 和 IKImageBrowserView 没有如我预期的那样实现绑定有关。

我有一个相当长的关键路径可以到达一个 NSArrayController,我想在 IKImageBrowserView 中显示它的内容。

这是我将 NSTextField 的显示模式绑定到 currentOrder.imagesArray.unvalidatedImages.arrangedObjects.@countAppDelegate 的关键路径。这很好用,并为我提供了属于当前订单的图像数组中未验证项目的数量,这是它应该做的。

当我尝试将以下关键路径绑定到 AppDelegate 的 IKImageBrowserView 的content:currentOrder.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 实现currentOrder为保留的@property,所​​有子键也是@properties。我可以确定这些属性是 KVC 好的,因为上面的 NSTextField 能够毫无问题地读取更改。有趣的selectionIndexes是,IKImageBrowserView 能够绑定到...unvalidatedImages.selectionIndexes,只有content那个不能。

我已经实现了一个解决方法,我在我的 nib 文件中放置了一个 NSArrayController 并将 Content Array 绑定到...arrangedObjects然后将 IKImageBrowserView 绑定到数组控制器,但是很高兴有一个更整洁的解决方案,或者至少知道我是否在做任何事情错误的。

谢谢!

4

1 回答 1

1

您是否尝试<IKImageBrowserDataSource>在您的应用程序委托中实现方法,并使用_dataSource连接而不是绑定?这对我有用,也是Apple 教程让你做到的。

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

于 2011-02-26T00:26:31.187 回答