NSApplication windows 属性 - windows 未删除?

2024-04-05

我有一个显示模式的 NSWindow/Controller。它有一个“关闭”按钮,连接到如下操作:

- (IBAction)close:(id)sender
{
    [self.window orderOut:sender];
    [self.window close];

    [[NSApplication sharedApplication] stopModal];
}

从我的主窗口中,我显示模式:

- (IBAction)modal:(id)sender
{
    NSLog(@"Before: %lu", [[[NSApplication sharedApplication] windows] count]);

    ModalWindowController *modal = [[ModalWindowController alloc] initWithWindowNibName:@"ModalWindowController"];
    [[NSApplication sharedApplication] runModalForWindow:modal.window];

    NSLog(@"After: %lu", [[[NSApplication sharedApplication] windows] count]);
}

我打开和关闭模态几次,输出如下:

2013-01-17 14:36:08.071 Modals[3666:303] Before: 1
2013-01-17 14:36:08.962 Modals[3666:303] After: 2
2013-01-17 14:36:09.578 Modals[3666:303] Before: 2
2013-01-17 14:36:11.009 Modals[3666:303] After: 3
2013-01-17 14:36:12.108 Modals[3666:303] Before: 3
2013-01-17 14:36:12.910 Modals[3666:303] After: 4

So, [[[NSApplication共享应用程序]窗口]计数]只曾经增加.

当我打开和关闭模式窗口时,我希望它会增加和减少。我的应用程序使用 ARC。谁可以给我解释一下这个?

先感谢您


您正在关闭窗口,但这并没有取消分配它,因为您的窗口控制器ModalWindowController至今仍保留着它。我在您的示例中没有看到任何表明窗口控制器正在被释放的内容。

给您的最简单的答案是让您在调用后释放窗口控制器-runModalForWindow:.

您可能期望窗口控制器在窗口关闭时关闭。这是你必须自己实现的事情。来自 Apple 文档中的“窗口关闭行为”:

如果你想关闭一个窗口同时使窗口和窗口 当控制器不是文档的一部分时,控制器就会消失,您的子类 NSWindowController 可以观察 NSWindowWillCloseNotification 或者,如 窗口委托,实现 windowWillClose: 方法并包含 您的实现中的以下代码行:“[self autorelease];”

在您的场景中,这可能不是最好的方法,因为您最终会在有机会调用之前处理掉窗口控制器和窗口-stopModal.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NSApplication windows 属性 - windows 未删除? 的相关文章

  • 您是否标记 UIView 或将它们保留为属性?

    这主要是一个风格问题 但自从我开始为 iPhone 编程以来 我一直很好奇其他人的想法是什么 当您的 iPhone 应用程序中有一个 UIView 并且需要在应用程序的其他位置访问它时 通常在视图控制器中的另一个函数中 您是否喜欢用整数标记
  • 如何使用 iPhone SDK 实现可滑动的图像堆栈(例如照片应用程序)?

    我想获取一堆图像 或者可能是一组用于下载图像的 URL 并以全屏方式显示它们 一次一个 使用 iPhone SDK 使用用户滑动来平滑地为堆栈中的下一个图像设置动画 Apple 的 Photo app 似乎可以做到这一点 此外 如果尚未检索
  • iPhone 应用程序中的异步、同步、线程

    我正处于一个应用程序的设计阶段 该应用程序将利用 REST Web 服务 并且在使用异步 同步和线程方面遇到了困境 这是场景 假设您有三个选项可供深入研究 每个选项都有自己的基于 REST 的资源 我可以使用同步请求延迟加载每个请求 但这会
  • 在 Cocoa OS X AVPlayer 中播放 HLS (m3u8) - Swift

    基本上我正在尝试在 Cocoa Swift 中使用 AVPlayer 播放 m3u8 HLS Live Stream 我对这门语言比较陌生 所以基本上掌握了一些示例代码 http qiita com ono matope items 23d
  • 在没有预览窗口的情况下使用 AVCaptureVideoDataOutputSampleBufferDelegate

    我正在开发一个基于 Swift 的 macOS 应用程序 我需要捕获视频输入 但不将其显示在屏幕上 而不是显示视频 我想将缓冲的数据发送到其他地方进行处理 并最终显示它在 a 中的一个物体上SceneKit scene 我有一个Camera
  • 如何知道我的应用程序使用了多少 iCloud 空间?

    有没有办法查看我的应用程序正在备份到 iCloud 的内容以及它消耗了多少内存 Settings gt iCloud gt Storage Backup gt Manage Storage将显示正在备份的总计内容 iOS 会备份位于应用程序
  • 导入 RNCryptor 后架构 armv7 的未定义符号

    我导入了 RNCryptor 可以在这里找到 https github com rnapier RNCryptor https github com rnapier RNCryptor进入我的应用程序 但是 我在日志中收到了三个错误 Und
  • 如何将 UILabel 的值绑定到实例变量?

    我是 mac objective c 的新手 我的问题是 我想知道是否可以将 UILabel 文本绑定到变量 而不必在值更改时手动设置文本 例如 在 Mac OS 上 当我打开新的 Finder 窗口并删除文件时 任务栏中的全局可用空间就会
  • 覆盖层不与 UITableView 一起滚动 - iOS

    我有一个 UITableView 类 它使用以下方法在转到下一个屏幕时调用加载覆盖 问题是这个加载屏幕不随列表滚动 所以如果你滚动一点并单击某些东西 加载屏幕不会显示 因为它位于顶部 如何让加载屏幕始终保持在 UITableView 的顶部
  • 在 XCode 中链接静态 ObjC 库的过程

    我正在尝试链接到静态库 但不断收到链接器错误 我发现了一些发布示例的网站 但我无法看到我做错了什么 首先 我创建一个链接到我的库的项目 添加 gt 现有文件找到我的 xcodeproj 文件选择 将项目复制到目标组文件夹 选择我的宿主项目作
  • 在 Mac 操作系统上使用 ffmpeg 录制视频

    我想在 mac OS 上使用 ffmpeg 以任何格式录制实时网络摄像头视频 我尝试了很多 但无法找到用于重新编码视频的命令 所以请任何人都可以告诉我 ffmpeg 命令用于使用 Mac 操作系统的网络摄像头捕获视频 提前致谢 对于 Mac
  • UIImageJPEGRepresentation 在视网膜显示屏上提供 2x 图像

    我有这段代码 它创建一个图像 然后向其添加一些效果并缩小其大小以使其largeThumbnail UIImage originalImage UIImage imageWithData self originalImage thumbnai
  • 如何判断 NSObject 是否具有某个属性?

    假设在 Apple API 1 0 版中 有一个 NSFoo 类 其属性为 color API 1 1 添加了属性 size 我想知道是否可以使用 getter myFoo size myFoo respondsToSelector sel
  • NSNotificationCenter 为“观察者”和“对象”保留什么类型的引用?

    任何人都可以澄清 阐明有关情况 NSNotificationCenter addObserver selector name object 观察者 和 对象 参数的通知中心保留哪些类型的引用 从通知中心删除观察者的最佳实践是什么 多线程应用
  • 使用 UITabBarController 时覆盖整个屏幕的视图?

    我想在 UITabBarController 设置中在整个屏幕上覆盖 HUD 样式的透明图形 执行此操作的按钮位于第一个选项卡的屏幕 FirstViewController 中 并且覆盖层也应该覆盖选项卡 这可能吗 您可以将新视图直接附加到
  • 在 mac os Sierra 上,卡在“设置 CocoaPods 主存储库”上

    转移到 mac os sierra 后 我完全格式化了我的 mac 现在每次运行时我都面临安装 cocoapods 的问题sudo gem install cocoapods pre一切都安装得很好 当我尝试安装 Pod 时 终端堆栈打开S
  • 核心数据 iCloud 同步中的关系完整性和验证

    考虑以下简单的实体模型 实体 A 与实体 B 具有一对一关系 称为b 实体 B 具有逆对一关系 称为a 这两种关系都不是可选的 A B b lt gt a 假设我们有两个设备 1 和 2 开始完全同步 每个对象都有一个 A 类对象和一个 B
  • 诊断和仪器均缺少“僵尸”选项

    运行 Xcode 4 0 2 Zombie 选项丢失 其他 SO 帖子建议找到它的两个地方 Product gt Run looks like this Product gt Profile looks like this 奇怪的是 我之前
  • UIViewController 内的 UIsearchController 使用自动布局

    有没有人成功实施过UIViewController其中包含两个UISearchController searchBar and a UItableView使用自动布局来布局所有内容 我正在尝试实现类似的目标1密码 https itunes
  • 使用强光混合模式时突出显示伪影

    我正在 iPhone 应用程序中使用顶部图像的 HardLight 混合模式混合两个图像 它看起来像这样 UIGraphicsBeginImageContext size sourceImage drawInRect rectangle b

随机推荐

  • 从 logcat 中删除 onFlyCompress 消息

    我在用YuvImage来压缩android hardware Camera馈送到 jpeg 从那时起 我不断看到skia onFlyCompresslogcat 中的消息 这完全污染了它 有什么办法可以禁用此消息吗 我知道我可以过滤 log
  • 如何在 Octave 中永久加载包?

    我在 Windows vista 上使用 Octave 我在代码中使用 4 个包 但是每次我重新启动八度音程时 我都必须从命令行手动加载 pkg load 有没有办法永久加载它们 以便每当 Octave 启动时它都会在其路径中找到它们 当
  • 如何在 mongo 中不区分大小写地索引用户名?

    我正在编写一个网络服务 用户可以选择一个不区分大小写的唯一用户名 不过 我想允许他们使用区分大小写的用户名版本 在插入时检查用户名没有不区分大小写的重复项的最佳方法是什么 我目前看到有两种方法可以做到这一点 存储小写版本和用户输入大小写的另
  • 使用 Google Maps API 配置热图叠加层

    我正在尝试使用 Google Maps API 生成位置热图 它可以工作 但结果不是很有用 因为热图渲染的部分很小很难看到 文档中没有任何内容建议扩展热图以呈现更大的斑点的方法 是否有一种未记录的方法可以做到这一点 或者这只是 API 的限
  • 解码 OAEP 填充时出错

    使用解密文本时RSACryptoServiceProvider Decrypt 我收到错误 解码 OAEP 填充时出错 这是我的代码 CspParameters cspParam new CspParameters cspParam new
  • 如何在不按 F5 的情况下使缓存图像过期?

    我正在使用 MVC4 和 C 制作一个 Web 应用程序 我允许用户上传他们的个人资料图片 此时 我需要之前的个人资料图片过期 以便当浏览器重新加载页面时显示新图像 目前 由于两个图像共享相同的名称 因此浏览器使用已缓存的先前图像而不是新图
  • 单击 iframe 中的链接根本没有任何效果

    在 Google Chrome 中 我注意到点击一些链接似乎根本没有效果 a href http google com clicking this link does nothing at all a 这里有一个JSBin http jsb
  • 避免在重建期间删除当前的 Lucene.NET 索引

    我是 Lucene NET 的新手 但我正在使用一个开源工具 http trac sitecore net AdvancedDatabaseCrawler 为Sitecore CMS http www sitecore net它使用 Luc
  • Robot Framework:在实际变量中包含竖线(|)字符而不是作为分隔符的方法?

    我通过文本格式使用 Robot Framework 和 robot 文件设置 我一直在寻找一种包含管道字符的方法 变量中每一侧都有一个空格 以便变量中的内容可读 而不会导致 Robot Framework 将其视为分隔符 问题在于 Robo
  • 如何从另一个 Grails 插件配置 Grails 插件

    我正在尝试编写一个可以在多个 Grails 应用程序中重用的插件 该插件基本上应该是一个包装器弹簧安全核心 http grails org plugin spring security core和 LDAP 插件 这意味着它应该包含 用户
  • 运行时的“v2.0.50727”,如果没有附加配置信息,则无法在 4.0 运行时中加载[重复]

    这个问题在这里已经有答案了 我正在将 vcproj 从 VS2005 转换为 VS2010 但转换后出现以下错误 附加信息 混合模式程序集是针对运行时版本 v2 0 50727 构建的 如果没有附加配置信息 则无法在 4 0 运行时中加载
  • 耳朵图像处理 - 在 MATLAB 中查找直线和曲线的交点

    1 https i stack imgur com j3ZRQ jpg我有一只耳朵的 Canny 边缘输出 我用一条线 绿色 连接了最远的两个边界 现在我想从这条线的中点到外边界 左侧 绘制一条法线 我编写的代码帮助我绘制法线 但我希望红线
  • mysql NOW() 返回错误值,而全局时区设置为 +00:00

    两周以来 我对时区问题感到困惑 在我的本地主机上一切正常 但它在专用服务器上返回错误的值 让我说说到目前为止我做了什么 首先通过以下查询设置全局时区 本地主机和服务器上的超级权限 SET GLOBAL time zone 00 00 现在运
  • 如何访问权限允许管理android studio中的所有文件

    在 Android 10 和 11 SDK 30 中 如何访问Android设备中的所有文件并授予允许管理所有文件的权限 我已经尝试过requestLegacyExternalStorage defaultToDeviceProtected
  • 将 java 对象/类从一个类加载器复制到另一个类加载器

    您好 有没有一种方法可以将一个类加载上下文 属性等 从一个类加载器 例如 制作 类点 复制到另一个类加载器 明确表示 例子 我在 CL 1 上有一个对象点 现在在另一个 CL2 上运行 我想在 CL 3 中创建这个对象 一些对象 class
  • 设置 dplyr 链内列的格式

    我有这个数据集 dat lt structure list date structure c 1L 1L 1L 2L 2L 2L 3L 3L 3L 4L 4L Label c 3 31 2014 4 1 2014 4 2 2014 4 3
  • 如何让Android KitKat用户不下载应用程序?

    我在Android 中开发了一个应用程序 它适用于除 KitKat 用户之外的所有用户 当我在 Play 商店上传此应用程序时 我希望 KitKat 用户无法下载此应用程序 即使当我在系统中执行此应用程序时 它也会检测 KitKat 手机
  • 在java中创建自定义对象数组

    我有 100 条数据记录 这些数据是从服务传入我的系统的 我想为每条记录创建 100 个类对象 以便将其序列化为我的自定义类 我在 for 循环内进行内存创建 如下所示 for int i 0 i lt 100 i SomeClass s1
  • 将 HTML 文件解析为 PHP

    这是将 html 文件解析为 php 的正确方法吗 RemoveHandler html htm AddType application x httpd php php htm html 保存在根文件夹中的 htaccess 文件中吗 我添
  • NSApplication windows 属性 - windows 未删除?

    我有一个显示模式的 NSWindow Controller 它有一个 关闭 按钮 连接到如下操作 IBAction close id sender self window orderOut sender self window close