我有一个NSImageView的实例。我告诉InterfaceBuilder允许用户将图像粘贴或拖动到该视图中。这有效。但是,我没有在NSImageView或相关文档中看到一种方法,以便在实际发生时收到通知。我期待一个代表或一些这样的代表,但我一直无法找到它。有什么想法吗?
答案 0 :(得分:1)
这是Cocoa Bindings最擅长的。
不要与视图交谈,只需拥有一个值为图像的属性,并将图像视图的image
绑定绑定到它;然后,当您想要自己更改图像视图中的图像时,您所要做的就是设置属性的值,图像视图会注意到更改。
用户粘贴或拖入图像视图基本上是相同的,部分相反:粘贴或删除将更改图像视图的值,然后设置属性的值,这将导致其他任何内容绑定它以注意到变化并像以前一样获取新值。
除了删除现有的send-explicit-messages-to-views代码之外,这几乎不需要代码工作:您需要的唯一代码就是您的属性。你将在IB中连接Binding。
请参阅the Key-Value Coding Programming Guide和the Cocoa Bindings Programming Topics。
答案 1 :(得分:0)
对我来说,重写功能的更好方法
-(无效)粘贴:(id)发送者
但仅当您在基于NSViews的类中将其作为父类时才使用它