我在解决如何获得自定义nsview以通知我的主控制器类发生了某些事情时遇到了问题。
控制器类有一个mapView实例,如下所示:
IBOutlet MapView *mapView;
通过界面构建器实例化,在我的mapView类中,我得到这样的鼠标点击:
- (void)mouseDown:(NSEvent *)theEvent { //whatever...
但是当发生这种情况时,需要在控制器类中更改一个或两个变量 - 我该怎么做?
答案 0 :(得分:6)
为您的自定义View类定义协议并在您的控制器中实现协议,在您的视图类中,您将在视图中具有实现协议代码的委托属性...该属性看起来像
@property(assign) id <MyProtocol> myProtocolDelegate;
然后Controller可以将自己设置为视图的委托,如果它正确实现了协议,则应在视图调用时获取消息。 信息http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocProtocols.html