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