Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 当用户将图像粘贴或拖动到NSImageView中时,如何通知我的代码?_Cocoa_Delegates_Nsimageview - Fatal编程技术网

Cocoa 当用户将图像粘贴或拖动到NSImageView中时,如何通知我的代码?

Cocoa 当用户将图像粘贴或拖动到NSImageView中时,如何通知我的代码?,cocoa,delegates,nsimageview,Cocoa,Delegates,Nsimageview,我有一个NSImageView的实例。我已经告诉InterfaceBuilder允许用户将图像粘贴或拖动到此视图中。这很有效。但是,我在NSImageView或相关文档中看不到在实际发生这种情况时得到通知的方法。我期待着一位代表或类似的人,但我一直找不到。有什么想法吗?这是Cocoa绑定最擅长的 与其与视图对话,只需拥有一个值为图像的属性,并将图像视图的image绑定到它;然后,当您想要自己更改图像视图中的图像时,您所要做的就是设置属性的值,并且图像视图将注意到更改 用户粘贴或拖动到图像视图中本

我有一个NSImageView的实例。我已经告诉InterfaceBuilder允许用户将图像粘贴或拖动到此视图中。这很有效。但是,我在NSImageView或相关文档中看不到在实际发生这种情况时得到通知的方法。我期待着一位代表或类似的人,但我一直找不到。有什么想法吗?

这是Cocoa绑定最擅长的

与其与视图对话,只需拥有一个值为图像的属性,并将图像视图的
image
绑定到它;然后,当您想要自己更改图像视图中的图像时,您所要做的就是设置属性的值,并且图像视图将注意到更改

用户粘贴或拖动到图像视图中本质上是相同的,部分是相反的:粘贴或拖放将更改图像视图的值,然后设置属性的值,这将导致绑定到它的任何其他对象注意到更改并像以前一样拾取新值

除了删除现有的“向视图发送显式消息”代码外,这几乎不需要代码工作:您只需要为您的属性编写代码。你将在IB中连接绑定


请参阅和。

我想知道重写函数的更好方法

-(无效)粘贴:(id)发件人


但是,只有在基于NSView的类中有它,该类将NSResponder作为父对象

可能值得注意的是,
NSImageView
在图像被丢弃时会向其目标发送一个操作,这是另一种处理它的方法。Rob Keniger:我甚至会建议您给出一个答案。我最终会深入研究绑定,但现在我想熟悉一下较低级别的设施。我相信理解它们会让我成为一个更好的调试器,现在我不是在最后期限上,我有幸没有选择最高级别的方式来做每件事。Rob的答案提示闻起来像是一个赢家,事实上,我只是用它来追踪一些文档,并找出如何告诉IB,当图像发生变化时,NSImageView实例应该向我的控制器发送一条消息。罗布应该把他的暗示变成一个恰当的答案,这样我就可以这样说了。