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

时间:2012-11-16 02:06:10

标签: objective-c cocoa xcode4 appdelegate

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

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

谢谢,

查理

3 个答案:

答案 0 :(得分:1)

你犯了两个错误。

首先:如果你想让它公开,你必须按Ctrl +拖动到.h。如果你在.m中这样做,它将变为私有。因为你无法在.m中试一试.h。

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

答案 1 :(得分:1)

取决于您拖动的位置。您不能在@implementation或.m文件的顶级插入插座(属性)或操作方法声明。您必须将其插入@interface

在.m文件的顶部,在@implementation的正上方,开始编写@interface,并完成类扩展。它应该是这样的:

@interface MyView ()

@end

按住Ctrl键拖动到这两个非空行之间,然后在那里插入你的插座或动作声明。

  

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

我认为你在某处读到的并且正在考虑改变文件所有者的类。如果它不是正确的类,您只需要更改它,即使这样,只有当该对象位于ctrl-drag的一端或另一端时才会相关。由于您正在从另一个对象拖动到另一个对象的类,因此不涉及文件所有者,因此您无法或应该更改它以解决此问题。

答案 2 :(得分:0)

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

首先声明一个动作

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

myView.h中,或者在类扩展名

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

在“界面”构建器中,控制从按钮拖动到myView

enter image description here

并选择myAction: