只是一个简单的问题(我希望!)
我有一个 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
}
我无法找出我做错了什么。
(可可编程新手)
非常感谢!
答案 0 :(得分:1)
你在哪里以编程方式称呼它?您可能在视图加载到init方法之前调用它,而不是像awakeFromNib那样加载其他内容。
答案 1 :(得分:0)
我尝试了你的代码并获得了不同的结果。它从代码(和更新的表)被称为罚款,但不是从按钮调用(并且在尝试从按钮调用时,日志也没有运行)。
问题是方法名称 - 您不应该将方法命名为void。您是否在控制台中收到错误消息:“无法将操作void:连接到AppDelegate类的目标” 编译器甚至不允许我将该方法连接到按钮(看起来我可以在IB中,但我收到该错误消息,如果我将该方法放在.h文件中,它旁边没有圆圈这表明它是否已连接)。