0

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

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

1 回答 1

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]; 
于 2014-07-16T07:27:14.883 回答