我有一个简单的测试应用程序(在 OSX 中),它有一个视图控制器,其视图中有一个按钮。按钮的操作方法在视图控制器的类中,并且 IBAction 在 IB 中连接(通过文件的所有者)。单击按钮时,我收到 EXC_BAD_Access 错误(除了偶尔会收到 -[NSRunLoop buttonClick:] )。我在这里阅读了一堆关于 NSViewControllers 不在响应者链中的帖子,而且在 IB 中专门挂钩操作方法应该可以工作。我唯一的代码是这样的:
在应用委托中:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
TestController *controller = [[TestController alloc] initWithNibName:@"TestController" bundle:nil];
[self.window.contentView addSubview:controller.view];
}
而且,在 TestController 类中,就是这样:
-(IBAction)buttonClick:(id)sender {
NSLog(@"%@",sender);
}
我有 2 个问题。为什么会发生这种情况,以及将 IBActions 用于按钮方法的正确 mvc 位置在哪里(控制器类不应该处理这些)?