0

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

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

为什么如果我以编程方式调用该方法(例如:[self method])我的表将不会更新,而是如果我通过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
}

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

(可可编程新手)

非常感谢 !

4

2 回答 2

1

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

于 2012-12-08T00:51:50.190 回答
0

我尝试了您的代码并得到了不同的结果。从代码中调用它很好(并且更新了表),但不是从按钮调用(并且在尝试从按钮调用时日志也没有运行)。

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

于 2012-12-08T02:46:38.370 回答