NSView 对象作为 IBOutlet 响应

发布于 2024-09-16 11:49:40 字数 260 浏览 6 评论 0原文

我陷入了一个我无法解决的问题。 我有一个 CourtView : NSView ,我可以在其中绘图并存储我的 mouseDownPoint 和 mouseUpPoint 。 我有一个 WindowManager : NSObject ,其中有 CourtView 作为 IBOutlet CourtView *courtView;

我想做的是,一旦释放鼠标,那么 - (void)mouseUp:(NSEvent *)event;被调用时,会调用 WindowManager 中的一个方法。

i am stuck on one problem that i am not able to solve.
I have a CourtView : NSView in which i can draw and where it stores my mouseDownPoint and mouseUpPoint.
And I have a WindowManager : NSObject which has CourtView as an IBOutlet CourtView *courtView;

What i want to do is that as soon as the mouse is released, so - (void)mouseUp:(NSEvent *)event; is called, a method in WindowManager is called.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

幽蝶幻影 2024-09-23 11:49:40

您需要为 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];

    // ...
}

You need to give CourtView a reference to the WindowManager instance so that it can call through to it in the mouseUp method. There are several ways to do this, but given that you already use an IBOutlet to link them the other way, probably the simplest is to do the same in reverse.

Add an IBOutlet instance variable to the interface of CourtView:

@class WindowManager;
@interface CourtView : NSView
{
    IBOutlet WindowManager* manager;

    // ... rest of your interface ...
}

In Interface Builder, you should now be able add a connection between this outlet in your CourtView and the existing WindowManager object. Then, in the implementation for CourtView, have your event handler send the relevant message to manager:

- (void) mouseUp:(NSEvent*) event
{
    // ...

    [manager someWindowManagerMethodWithEvent:event andOtherArgument:whatever];

    // ...
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文