窗口控制器委派错误

时间:2014-07-16 06:32:53

标签: objective-c cocoa delegates nswindowcontroller modal-window

我使用此代码在模态视图中显示窗口控制器窗口。我在窗口控制器中为窗口中的按钮操作。当我点击按钮时,应用程序崩溃并且没有收到任何错误消息。我在设置代表时错了吗?

[[NSApplication sharedApplication] beginSheet:windowObj.window modalForWindow:self.view.window modalDelegate:windowObj didEndSelector:nil contextInfo:nil];

1 个答案:

答案 0 :(得分:1)

在工作表显示窗口之前,

windowObj正在被释放(如果您使用它,可能是ARC)。您应该为您使用的任何类添加一个强属性,并将windowObj设置为它,如下所示:

@property (strong) MyWindowController *windowObj;
...
// Instantiate the window controller
self.windowObj = [[windowController alloc] initWithWindowNibName:@"windowController"];
[[NSApplication sharedApplication] beginSheet:windowObj.window modalForWindow:self.view.window modalDelegate:windowObj didEndSelector:nil contextInfo:nil];