Interface Builder没有显示IBActions

时间:2015-03-28 13:30:01

标签: objective-c xcode cocoa interface-builder ibaction

问题

我有一个班级(AppController),有两个出口和两个行动 这两个出口由Interface Builder接收并连接正常 但是,当在Ctrl Builder中单击“界面生成器”中的AppController对象时,这两个操作不会出现在HUD窗口中,也不会显示在“库” - >“类 - > AppController->操作”中。

AppController.h

#import <Cocoa/Cocoa.h>


@interface AppController : NSObject {
    IBOutlet NSWindow *newDownloadSheet;
    IBOutlet NSBox *downloadsBox;
    NSString *sourceFileURL;
    NSString *destinationFileName;
    NSMutableArray *downloads;
}

- (IBAction)newDocument; // New Download - to respond to File->New, delegates to showNewDownloadSheet:
- (IBAction)showNewDownloadSheet (id)sender;

@end

在.m文件中定义它们(尽管AFAIK Interface Builder甚至不查看.m文件)。此外,我的代码编译得很好(没有警告)并且确实“运行”,它无法做任何事情,因为我无法连接IBActions。

系统信息

Mac OS X 10.6 - 是的,我知道它已经老了。我的电脑也是,所以我无法升级 XCode 3.2.6
Interface Builder 3.2.6

为什么这不重复

我可以在同一个问题上找到关于SO的其他两个问题,但没有一个答案适合我。

  1. Why doesn't IB see my IBAction? 答案建议
    1. 手动重新加载相关的类文件(File-&gt; Read Class File ...)。试过了,没有工作。
    2. 添加...: (id)sender;。正如你所看到的,我的一个动作有这个,一个没有,但都没有出现。
    3. 正确设置文件所有者。这与我的问题无关,因为我没有尝试连接到File的所有者对象,而是连接到一个单独添加的Object,其身份正确设置为AppController。加上奥特莱斯出现。
  2. IBAction doesn't show up in interface builder唯一的答案与1.2相同。

1 个答案:

答案 0 :(得分:2)

- (IBAction)showNewDownloadSheet (id)sender;
是不正确的,应该是
- (IBAction)showNewDownloadSheet: (id)sender;

注意缺少“:”。