我有NSImageView
,可以很好地运作。它也受到约束。一个值转换器,使用值path属性显示每条记录的已保存图像(值转换器只是附加文件路径 - 我只是将图像的文件名存储在数据库中)。
当我没有限制值路径时(即用户尚未设置图像)将图像拖到图像上时,一切正常 - 在数据库中缩放和设置图像,然后显示图像。如果通过显示数据库中已有图像。绑定将新图像拖动到图像上会导致NSImageView.image返回nil。图像视图本身不是零。
我通过在图像上设置目标和动作来很好地捕捉图像上的拖动图像。
imageWell.target = self
imageWell.action = "imageWellAction:"
当其他图片已绑定到NSImageView
时,如何访问拖动的(新)图片?
答案 0 :(得分:0)
我花了很长时间深入NSPasteboard
和NSImageView
子类(试图通过performDragOperation
)。
问题是由于NSValueTransformer
不知道如何处理NSPasteboard
在绑定并将图像放到其上时传递给它的网址。
最后,修复这种情况的最简单方法是在绑定NSImageView
的可可绑定之上添加NSImageView
。最顶层的图像视图接受拖动操作,更新托管对象,然后清除其.image属性。底部图像视图注意到它所绑定的托管对象已更新,然后正确更新图像。
所以:
理想情况下,我会成为NSValueTransformer
忍者并知道如何对已删除的粘贴板网址进行逆转换(当存在绑定时总是为零)但在这种情况下我选择了实用主义。