1

我有一个带有单个窗口的全新 xcode 4 可可项目(不是 ios )。对于该窗口中的视图,我将类更改为“myView”并创建了 myView.[hm] 。我在主窗口的视图中添加了一个按钮。当我从按钮控制拖动到 myView.m 的源代码时,它不会弹出“创建操作?” 正如我所料。但是,当我尝试控制拖动到“AppDelegate.m”时,它确实会弹出。因此,我认为我需要更改某些东西的“所有者”,以便控制拖动到 myView.m 工作。

任何关于我如何做到这一点的建议,或者我在概念上的错误,将不胜感激。

谢谢,

查理

4

3 回答 3

1

你犯了两个错误。

第一:如果你想让它公开,你必须按 Ctrl+Drag 到 .h,如果你在 .m 中这样做,它将变为私有。由于您无法在 .m 中进行操作,请在 .h 中尝试。

第二:将Object的类更改为myView,默认为AppDelegate。并检查您的文件所有者类是什么。

于 2012-11-16T03:36:58.987 回答
1

这取决于你拖到哪里。您不能@implementation在 .m 文件或 .m 文件的顶层插入插座(这是一个属性)或操作方法声明。您必须将它们插入到@interface.

在 .m 文件的顶部,就在 . 上方@implementation,开始编写一个@interface,并完成一个类扩展。它应该如下所示:

@interface MyView ()

@end

按住 Ctrl 并拖动到这两条非空行之间,然后在此处插入您的出口或操作声明。

因此,我认为我需要更改某些东西的“所有者”,以便控制拖动到 myView.m 工作。

我认为您在某处阅读并正在考虑的是更改文件所有者的类别。如果它还不是正确的类,您只需要更改它,即使那样,这也只有在该对象位于您的 ctrl-drag 的一端或另一端时才有意义。由于您是从另一个对象拖动到另一个对象的类,因此不涉及文件所有者,因此您可以或应该更改它以解决此问题。

于 2012-12-30T06:38:20.313 回答
0

以下方法不使用助理编辑器:

首先声明一个动作

@interface myView : NSView
//...
- (IBAction)myAction:(id)sender;
//...
@end

myView.h或替代地在类扩展中

@interface myView ()
//...
- (IBAction)myAction:(id)sender;
//...
@end

myView.m.

在界面生成器中,控制从按钮拖动到myView

在此处输入图像描述

并选择myAction:

于 2012-12-30T06:47:41.140 回答