添加列时遇到麻烦 - 可可

时间:2012-12-08 00:16:09

标签: objective-c cocoa updates

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

我有一个 void 方法,可以在表格中添加一列。

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

方法:

- (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
}

我无法找出我做错了什么。

(可可编程新手)

非常感谢!

2 个答案:

答案 0 :(得分:1)

你在哪里以编程方式称呼它?您可能在视图加载到init方法之前调用它,而不是像awakeFromNib那样加载其他内容。

答案 1 :(得分:0)

我尝试了你的代码并获得了不同的结果。它从代码(和更新的表)被称为罚款,但不是从按钮调用(并且在尝试从按钮调用时,日志也没有运行)。

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