2

我通过NSImageView绑定绑定到磁盘上的文件valuePath。当我向该位置写出新图像时,我希望NSImageView显示新图像。我怎样才能做到这一点?

我已经尝试在视图绑定的对象上调用-didChangeValueForKey:和,并-willChangeValueForKey:在对象上声明一个+keyPathsForValuesAffecting___方法,但我觉得这些基于 KVO 的方法没有影响,因为图像的路径没有改变,只是它的内容。

更改发生后,我还尝试在图像视图上调用-setNeedsDisplay-updateCell:,但这也不起作用。

更新

我在写入新图像之前立即将-imagePath绑定对象上的属性(计算属性)更改为@"",然后立即返回正确的路径。这确实达到了预期的效果,但我希望 API 中存在更正确的方法。感觉就像一个黑客。

4

3 回答 3

1

Set a different value (empty string @"") and then restore the original value.

于 2012-07-14T18:48:40.523 回答
0

很确定这needsDisplay = true是执行此操作的正确方法,但是您还必须在主线程上运行,否则不会发生更改。

于 2019-12-10T02:29:26.420 回答
-1

转到界面生成器中的文件检查器,然后取消选中“使用自动布局”。

于 2013-05-02T12:19:33.980 回答