我有一个相对较长的任务。因此,我从AppDelegate中拿出一个单独的窗口AppDelegate来显示进展。就像
//AppDelegate.m
if (self.progresswindow == nil) {
self.progresswindow = [[ProgressController alloc] initWithWindowNibName:@"ProgressController"];
}
[progresswindow showWindow:self];
//[[progresswindow window] setReleasedWhenClosed:NO];
[NSApp runModalForWindow:progresswindow.window];当任务完成时,进度窗口将自动关闭。
//ProgressController.m
[NSApp stopModal];
[self close];效果很好。但是,当我单击一个按钮来启动具有相同窗口的另一个任务会话时,应用程序将不会运行一个任务,尽管它是打开的。最后一个实例似乎还没有被释放。进度窗口有以下几行。
- (void)windowDidLoad {
NSLog(@"Hey!");
}第二次也不会叫NSLog了。我想知道我做错了什么?从setReleasedWhenClosed调用AppDelegate没有任何效果。无论如何,我已经启用了关闭复选框时的发行版。我读到了类似于我需要观察的NSWindowWillCloseNotification,different topic中的进度窗口,这样我就可以在它关闭时释放它。但我用的是ARC。所以我不能手动释放它,是吗?同时,如果我打开苹果的示例(TableViewPlayground),,他们似乎会使用此通知。此外,我还读过this topic和this topic。但我不知道问题出在哪里。
我很感激你的建议。谢谢您抽时间见我。
发布于 2013-05-22 07:28:23
释放进度窗口控制器。
https://stackoverflow.com/questions/16685501
复制相似问题