Objective c 添加列时出现问题-Cocoa

Objective c 添加列时出现问题-Cocoa,objective-c,cocoa,updates,Objective C,Cocoa,Updates,只是一个简单的问题(我希望!) 我有一个void方法,可以向表中添加一列 为什么如果我以编程方式调用该方法(例如:[self method]),我的表将不会更新,而如果我通过iAction(从应用程序中按下按钮)调用它,它会工作? 实际上,我可以从日志中看到,在这两种情况下都调用了方法,但只使用iAction更新数据 方法: - (IBAction)void { NSTableColumn *column = [[NSTableColumn alloc] initWithIdentifi

只是一个简单的问题(我希望!)

我有一个void方法,可以向表中添加一列

为什么如果我以编程方式调用该方法(例如:[self method]),我的表将不会更新,而如果我通过iAction(从应用程序中按下按钮)调用它,它会工作? 实际上,我可以从日志中看到,在这两种情况下都调用了方法,但只使用iAction更新数据

方法:

- (IBAction)void {
    NSTableColumn *column = [[NSTableColumn alloc] initWithIdentifier:@"1"];
    [column setWidth:50];
    [tableData addTableColumn:column];
    [tableData reloadData];

    [[column headerCell] setStringValue:@"aColumn"];
    NSLog(@"Method called"); //The method is called in both cases
}
我不知道我做错了什么

(cocoa编程新增)


非常感谢

您在哪里以编程方式调用此功能?您可能在视图加载到init方法之前调用了它,而不是像awakeFromNib这样的其他方法。

我尝试了您的代码,得到了不同的结果。它是通过代码调用的(表已更新),但不是通过按钮调用的(尝试通过按钮调用时,日志也未运行)

问题是方法名——不应该将方法命名为void。您是否在控制台中未收到错误消息:“无法将操作void:连接到类AppDelegate的目标” 编译器甚至不允许我将该方法连接到按钮(看起来我可以在IB中连接,但我得到了错误消息,如果我将该方法放在.h文件中,它旁边没有圆圈显示它是否连接)