界面构建器自定义nsview向父级发送操作

jon*_*dep 4 objective-c interface-builder

我在解决如何获得自定义nsview以告知我的主控制器类发生了什么问题时遇到了问题.

控制器类有一个mapView实例,如下所示:

IBOutlet MapView *mapView;
Run Code Online (Sandbox Code Playgroud)

这是通过界面构建​​器实例化的,在我的mapView类中,我得到的鼠标点击如下:

- (void)mouseDown:(NSEvent *)theEvent { //whatever...
Run Code Online (Sandbox Code Playgroud)

但是当发生这种情况时,需要在控制器类中更改一个或两个变量 - 我该怎么做?

Dan*_*iel 6

为自定义View类定义协议并在控制器中实现协议,在视图类中,您将在视图中具有实现协议代码的委托属性...该属性看起来像

@property(assign) id <MyProtocol> myProtocolDelegate;
Run Code Online (Sandbox Code Playgroud)

然后,Controller可以将自己设置为视图的委托,如果它正确实现了协议,则应该在视图调用时获取消息.信息在这里http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocProtocols.html