Objective c xcode4和助理编辑器中非常基本的插座/动作连接问题

Objective c xcode4和助理编辑器中非常基本的插座/动作连接问题,objective-c,cocoa,xcode4,appdelegate,Objective C,Cocoa,Xcode4,Appdelegate,我有一个全新的xcode 4 cocoa项目(不是ios),只有一个窗口。对于该窗口中的视图,我将类更改为“myView”,并创建了myView。[hm]。我在主窗口的视图中添加了一个按钮。当我控制从按钮拖动到myView.m的源代码时,它不会像我预期的那样弹出“创建操作”。但是,当我试图控制拖动到“AppDelegate.m”时,它会弹出。因此,我认为我需要更改某个对象的“所有者”,以便控件拖动到myView.m work 任何关于我如何做到这一点的建议,或者我在概念上的错误,都将不胜感激 谢

我有一个全新的xcode 4 cocoa项目(不是ios),只有一个窗口。对于该窗口中的视图,我将类更改为“myView”,并创建了myView。[hm]。我在主窗口的视图中添加了一个按钮。当我控制从按钮拖动到myView.m的源代码时,它不会像我预期的那样弹出“创建操作”。但是,当我试图控制拖动到“AppDelegate.m”时,它会弹出。因此,我认为我需要更改某个对象的“所有者”,以便控件拖动到myView.m work

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

谢谢


查理,你犯了两个错误

第一:如果你想让它公开,你必须按住Ctrl键并拖动到.h,如果你在.m中这样做,它将变成私有的。由于您无法在.m中完成,请在.h中尝试


第二:将对象的类更改为myView,默认情况下它将是AppDelegate。并检查文件的所有者类别。

这取决于拖动到的位置。不能在
@implementation
中或在.m文件的顶层插入出口(属性)或操作方法声明。您必须将它们插入
@界面

在.m文件的顶部,即
@实现
,开始编写
@接口
,并完成类扩展。应该是这样的:

@interface MyView ()

@end
按住Ctrl键并拖动到这两个非空行之间,然后在其中插入您的出口或操作声明

因此,我认为我需要更改某个对象的“所有者”,以便控件拖动到myView.m work


我想你在某个地方读到的,并且正在考虑的是改变文件所有者的类。只有当对象不是正确的类时,才需要对其进行更改,即使如此,也只有当该对象位于ctrl拖动的一端或另一端时,才需要进行更改。由于您正在从一个其他对象拖动到另一个对象的类,因此不涉及文件的所有者,因此您不能也不应该对其进行任何更改以解决此问题。

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

首先宣布一项行动

@interface myView : NSView
//...
- (IBAction)myAction:(id)sender;
//...
@end
myView.h
中,或者在类扩展中

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

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


然后选择
myAction:

谢谢您的回答;我想在.m文件中添加一个操作,而不是在.h文件中添加一个出口,这就是为什么我要拖到.m文件中。我想要的是按钮属于我的MyView类;您仅限于可以拖动到该文件中的位置。此外,没有理由假设作为应用程序委托的顶级对象是提问者想要连接的视图对象。视图与其他视图对话没有多大意义。视图应该与控制器对话。