首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关闭窗口释放NSWindowController

关闭窗口释放NSWindowController
EN

Stack Overflow用户
提问于 2013-05-22 07:06:03
回答 1查看 1.9K关注 0票数 0

我有一个相对较长的任务。因此,我从AppDelegate中拿出一个单独的窗口AppDelegate来显示进展。就像

代码语言:javascript
复制
//AppDelegate.m
if (self.progresswindow == nil) {
    self.progresswindow = [[ProgressController alloc] initWithWindowNibName:@"ProgressController"];
}

[progresswindow showWindow:self];
//[[progresswindow window] setReleasedWhenClosed:NO];
[NSApp runModalForWindow:progresswindow.window];

当任务完成时,进度窗口将自动关闭。

代码语言:javascript
复制
//ProgressController.m
[NSApp stopModal];
[self close];

效果很好。但是,当我单击一个按钮来启动具有相同窗口的另一个任务会话时,应用程序将不会运行一个任务,尽管它是打开的。最后一个实例似乎还没有被释放。进度窗口有以下几行。

代码语言:javascript
复制
- (void)windowDidLoad {
    NSLog(@"Hey!");
}

第二次也不会叫NSLog了。我想知道我做错了什么?从setReleasedWhenClosed调用AppDelegate没有任何效果。无论如何,我已经启用了关闭复选框时的发行版。我读到了类似于我需要观察的NSWindowWillCloseNotificationdifferent topic中的进度窗口,这样我就可以在它关闭时释放它。但我用的是ARC。所以我不能手动释放它,是吗?同时,如果我打开苹果的示例(TableViewPlayground),,他们似乎会使用此通知。此外,我还读过this topicthis topic。但我不知道问题出在哪里。

我很感激你的建议。谢谢您抽时间见我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-22 07:28:23

释放进度窗口控制器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16685501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档