当磁盘上的映像更改时,如何使NSImageView刷新?

问题描述 投票:2回答:3

我通过其NSImageView绑定将valuePath绑定到磁盘上的文件。当我将新图像写到该位置时,我希望NSImageView显示新图像。我该怎么做?

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

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

更新

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

objective-c macos cocoa cocoa-bindings nsimage
3个回答
1
投票

设置另一个值(空字符串@""),然后恢复原始值。


0
投票

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


-1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.