0

我需要了解如何从父视图控制器中的视图获取鼠标事件。

假设我有一个视图控制器,它管理着一个 NSMutableArray 点。我可以初始化数组并将其传递给视图类,在该类中它将绘制到视图的矩形。

如果我在视图中配置了一些典型的鼠标事件,我可以在视图中添加点并让它们也绘制。

我不明白的是如何将该信息发送回父视图控制器,以便它可以将点添加到点数组中。

我不确定我是否应该对方法进行一些重载(它们不在控制器中响应),或者我是否可以设置一个委托(我不知道该怎么做)。

非常感谢您的建议,一个例子也很棒。

仅供参考,这是我需要解决的更复杂问题的一个简单示例,但该解决方案仍然适用。

谢谢

4

1 回答 1

0

作为 Cocoa 的新手,使用自定义委托对我来说仍然很陌生,但这就是解决方案。良好的旧对象消息传递。

1 在您的视图类中创建一个委托 --> id mouseDelagate。

2 使用至少一种方法创建一个简单的协议类。

3 在视图类中的实际鼠标事件方法。使用委托 [mouseDelegate mouseDidMove: point ] 调用协议方法。(但是您定义了该方法)。

4 在awakeFromNib文件中的view controller类中设置delegate([viewClass setMouseDelegate: self]);

5 实现协议方法;

 -(void)MouseDidMove{

 NSLog(@"moving");

 }

6 记得在两个类中导入协议

于 2012-06-12T18:38:47.137 回答