我通过其NSImageView
绑定将valuePath
绑定到磁盘上的文件。当我将新图像写到该位置时,我希望NSImageView
显示新图像。我该怎么做?
我曾尝试在绑定了视图的对象上调用-didChangeValueForKey:
和-willChangeValueForKey:
,并在该对象上声明了+keyPathsForValuesAffecting___
方法,但是我感觉这些基于KVO的方法没有影响,因为图像的路径没有改变,只是其内容。
[我也尝试在更改后在图像视图上调用-setNeedsDisplay
和-updateCell:
,但这也不起作用。
更新
在写新图像之前,我将绑定对象上的-imagePath
属性(计算属性)立即更改为@""
,然后紧接着又返回了正确的路径。这确实达到了预期的效果,但是我希望API中提供一种更正确的方法。感觉就像是黑客。
设置另一个值(空字符串@""
),然后恢复原始值。
非常确定needsDisplay = true
是执行此操作的正确方法,但是您还必须在主线程上运行,否则更改不会发生。
转到界面构建器中的文件检查器,然后取消选中“使用自动布局”。