ビューにボタンがあるビューコントローラーを持つ単純なテストアプリ(OSX)があります。ボタンのアクション メソッドはビュー コントローラーのクラスにあり、その IBAction は (ファイルの所有者を介して) IB に接続されます。ボタンがクリックされると、EXC_BAD_Access エラーが発生します (ただし、代わりに -[NSRunLoop buttonClick:] が発生する場合があります)。ここで、レスポンダーチェーンにない NSViewControllers に関係する SO に関する多くの投稿を読みましたが、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 の場所はどこですか (コントローラー クラスがこれらを処理するべきではありません)。