首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ABPeoplePickerView会留下隐藏窗口吗?(OSX)

ABPeoplePickerView会留下隐藏窗口吗?(OSX)
EN

Stack Overflow用户
提问于 2014-06-30 07:05:17
回答 1查看 60关注 0票数 0

我是这样发现这个问题的:

我的应用程序有一个带有ABPeoplePickerView的小对话窗口。完成后,此窗口(或其控制器)将被正确释放。

当应用程序终止时,在applicationShouldTerminate:中,我迭代它的所有窗口([NSApp windows]),如果窗口有一个委托,并且它响应windowShouldClose:,我调用该方法,如果响应是NO,我停止终止。

记录每个窗口的标题显示,每次我创建对话框窗口时,都会创建两个额外的隐藏窗口,标题分别为"People Picker Debug Info“和"People Picker Preview",并且在关闭对话框时不会处理这些窗口。如果您使用makeKeyAndOrderFront命令,您可以实际看到这些窗口。后者是空白的。长时间运行该应用程序可能会创建大量这样的窗口,可能会耗尽资源。我应该担心吗?我应该为此做些什么吗?我能用一下吗?

我的直觉是在对话框的deallocate方法中按标题搜索这些窗口,并在那里关闭它们。是否存在任何ARC问题?

EN

回答 1

Stack Overflow用户

发布于 2014-08-27 23:19:03

窗口控制器的dealloc方法中的以下几行已经修复了这个问题,据我所知没有任何副作用。

代码语言:javascript
复制
  for (NSWindow *w in [NSApp windows]) {
    if ([w.title isEqualToString:@"People Picker Debug Info" ]) {
      [w setReleasedWhenClosed:YES];
      [w close];
    }
  if ([w.title isEqualToString:@"People Picker Preview" ]) {
    [w setReleasedWhenClosed:YES];
    [w close];
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24481040

复制
相关文章

相似问题

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