【问题标题】:get instance from Controller object in NSImageView (cocoa)从 NSImageView 中的 Controller 对象获取实例(可可)
【发布时间】:2013-01-03 01:53:11
【问题描述】:

我是 Objective-C 的新手。

我用 Image Well (NSImageView) 和一些按钮制作了一个小应用程序。 从按钮和标签接收动作。我创建了一个名为“Controller”的类。我已使用“对象”对象将此类连接到 InterfaceBuilder 文件。

对于 Image Well,我创建了一个继承自 NSImageView (DImageView) 的类,并将该类设置为 ImageWell 的类(使用 interfaceBuilder)

在这个类中我已经覆盖了 mouseDown 方法:

//Class DImageView
- (void) mouseDown:(NSEvent *)theEvent
{
    NSLog(@"Test");
}     

现在我想从这个方法调用一个在 Controller 类中定义的方法。

但是,如果我使用 [[Controller alloc] init] 创建控制器对象的新实例。我正在创建一个新实例并且无法访问 Controller 类中的 IBOutlets 对吗?

我该如何解决这个问题?

感谢您的帮助..

【问题讨论】:

    标签: objective-c xcode cocoa


    【解决方案1】:

    通过xib文件链接:

    并考虑覆盖 AcceptFirstResponder,否则您将不会收到任何鼠标事件。

    【讨论】:

    • 很抱歉,我不完全理解我们的回答。我不想在对象中有一个来自 DImageView 类的实例。我不想在 DImageView 类中有控制器对象的实例。如何从类链接到 Objects in Objects?
    • 在你的xib中做同样的图,但从“控制器”拖到你的图像视图。
    • 我已经做到了。但是当我从控制器拖动到图像视图时,控制器中有一个来自 DImageView 类型的 IBOutlet。但我需要 DImageView 中指向控制器的引用。我需要另一个方向...
    • 那么反其道而行之,你不能那样做吗?
    • 我可以做相反的事情,但是我遇到了控制器导入“DImageView”类和DImageView类导入“控制器”类的问题。这会导致几个编译器错误。
    猜你喜欢
    • 2018-11-30
    • 1970-01-01
    • 2012-11-24
    • 1970-01-01
    • 2017-08-21
    • 2014-10-09
    • 2021-02-27
    • 2015-08-19
    • 1970-01-01
    相关资源
    最近更新 更多