我已通过valuePath
绑定将NSImageView
绑定到磁盘上的文件。当我向该位置写出新图像时,我想让NSImageView
显示新图像。我怎样才能做到这一点?当磁盘上的映像更改时,如何获取NSImageView以进行刷新?
我一直在努力,该视图所绑定的对象上调用-didChangeValueForKey:
和-willChangeValueForKey:
,并在对象上声明+keyPathsForValuesAffecting___
方法,但我有一种感觉,这些基于志愿的方法不产生影响,因为图像的路径不会改变,只是其内容。
我还试图在更改发生后在图像视图上调用-setNeedsDisplay
和-updateCell:
,但那也行不通。
更新
我之后我绑定的对象上改变了-imagePath
属性(计算属性)来@""
立即写入新图像之前,再回到正确的路径。这确实达到了预期的效果,但我希望在API中使用更正确的方法。这感觉就像一个黑客。
NSImages做一些缓存。如果在文件更新时有权访问图像视图,是否有任何理由不能仅仅在视图上调用setImage:? – farski 2012-07-14 02:08:38
如上所述,我不会调用'-setImage:',我在'valuePath'属性上使用绑定 – Dov 2012-07-14 02:13:38
您是否尝试完全写入不同的值(如空字符串或伪造路径),然后立即恢复物业的原始价值? – 2012-07-14 07:06:26