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

时间:2010-03-21 00:30:06

标签: cocoa delegates nsimageview

我有一个NSImageView的实例。我告诉InterfaceBuilder允许用户将图像粘贴或拖动到该视图中。这有效。但是,我没有在NSImageView或相关文档中看到一种方法,以便在实际发生时收到通知。我期待一个代表或一些这样的代表,但我一直无法找到它。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

这是Cocoa Bindings最擅长的。

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

用户粘贴或拖入图像视图基本上是相同的,部分相反:粘贴或删除将更改图像视图的值,然后设置属性的值,这将导致其他任何内容绑定它以注意到变化并像以前一样获取新值。

除了删除现有的send-explicit-messages-to-views代码之外,这几乎不需要代码工作:您需要的唯一代码就是您的属性。你将在IB中连接Binding。

请参阅the Key-Value Coding Programming Guidethe Cocoa Bindings Programming Topics

答案 1 :(得分:0)

对我来说,重写功能的更好方法

-(无效)粘贴:(id)发送者

但仅当您在基于NSViews的类中将其作为父类时才使用它