我遇到了一个我无法解决的问题。 我有一个CourtView:NSView,我可以在其中绘制以及它存储我的mouseDownPoint和mouseUpPoint的位置。 我有一个WindowManager:NSObject,它有CourtView作为IBOutlet CourtView * courtView;
我想要做的是,只要鼠标被释放,那么 - (void)mouseUp:(NSEvent *)事件;调用时,调用WindowManager中的方法。
答案 0 :(得分:1)
您需要为CourtView
实例提供WindowManager
引用,以便它可以使用mouseUp
方法调用它。有几种方法可以做到这一点,但鉴于您已经使用IBOutlet
以另一种方式链接它们,可能最简单的方法是反向执行相同的操作。
将IBOutlet
实例变量添加到CourtView
:
@class WindowManager;
@interface CourtView : NSView
{
IBOutlet WindowManager* manager;
// ... rest of your interface ...
}
在Interface Builder中,您现在应该可以在CourtView
中的此插座与现有WindowManager
对象之间添加连接。然后,在CourtView
的实现中,让您的事件处理程序将相关消息发送到manager
:
- (void) mouseUp:(NSEvent*) event
{
// ...
[manager someWindowManagerMethodWithEvent:event andOtherArgument:whatever];
// ...
}