我有一个全新的xcode 4可可项目(不是ios),只有一个窗口。对于该窗口中的视图,我将类更改为“myView”并创建了myView。[hm]。我在主窗口的视图中添加了一个按钮。当我从按钮控制拖动到myView.m的源代码时,它不会弹出“create action?”正如我所料。但是,当我尝试控制拖动到“AppDelegate.m”时,它会弹出。所以我认为我需要更改某个东西的“所有者”,以便控制拖动到myView.m工作。
我将非常感谢任何关于我如何做到这一点的建议,或者我在概念上错误的建议。
谢谢,
查理
答案 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
并选择myAction:
。