NSView对象作为IBOutlet响应

时间:2010-09-01 10:05:28

标签: objective-c window nsview iboutlet

我遇到了一个我无法解决的问题。 我有一个CourtView:NSView,我可以在其中绘制以及它存储我的mouseDownPoint和mouseUpPoint的位置。 我有一个WindowManager:NSObject,它有CourtView作为IBOutlet CourtView * courtView;

我想要做的是,只要鼠标被释放,那么 - (void)mouseUp:(NSEvent *)事件;调用时,调用WindowManager中的方法。

1 个答案:

答案 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];

    // ...
}