我的问题与接口生成器和IKImageBrowserView没有像我期望的那样实现绑定有关。
我有一个相当长的密钥路径来访问NSArrayController,我想在IKImageBrowserView中显示它的内容。
这是我绑定NSTextField的显示模式绑定到的关键路径: AppDelegate的currentOrder.imagesArray.unvalidatedImages.arrangedObjects.@count。这可以很好地工作,并为我提供属于当前订单的图像数组中未验证项目的数量,这是它应该做的。
当我尝试将以下密钥路径绑定到IKImageBrowserView的content:AppDelegate的currentOrder.imagesArray.unvalidatedImages.arrangedObjects时,Interface Builder没有给出任何错误,而是表现得好像我没有输入任何内容。当我单击返回到检查器时,bindings键路径再次为空。
但是,它会将以下内容记录到控制台: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,所有子键也是@property。我可以确定这些属性是KVC- to,因为上面的NSTextField能够毫无问题地读取更改。有趣的是,IKImageBrowserView的selectionIndexes能够绑定到...unvalidatedImages.selectionIndexes,只有content不能。
我已经实现了一个变通方法,我已经在我的nib文件中放置了一个NSArrayController,并将内容数组绑定到...arrangedObjects,然后将IKImageBrowserView绑定到数组控制器,但如果有一个更简洁的解决方案,或者至少知道我是否做错了什么,我会非常高兴。
谢谢!
发布于 2011-02-26 08:26:31
您是否尝试在您的应用程序委托中实现<IKImageBrowserDataSource>的方法,并使用_dataSource连接而不是绑定?这对我来说很有效,这也是Apple tutorial让你这么做的方式。
您基本上只需要实现– numberOfItemsInImageBrowser:和– imageBrowser:itemAtIndex:来提供数据,这并不是很糟糕。稍微棘手的部分是实现一个<IKImageBrowserItem>类来包装数据,但即使这样也不需要大量的工作。上面链接的教程应该会有很大帮助。
https://stackoverflow.com/questions/3287589
复制相似问题