防止我的 Cocoa 应用程序“恢复”?

Posted

技术标签:

【中文标题】防止我的 Cocoa 应用程序“恢复”?【英文标题】:Prevent "Resume" for my Cocoa application? 【发布时间】:2011-09-19 05:34:20 【问题描述】:

我喜欢 Lion 中的新“简历”功能。重新启动后,窗口大小和位置正是您离开它的方式。但是在开发过程中,这有点烦人。 如果我在 Interface Builder 中调整一个窗口的大小并重新启动我的应用程序,它不会有新的大小,而是旧的大小。

在过去,您必须设置 AUTOSAVE 属性才能获得这种行为,但使用 Resume,这一切都会自动发生。我可以以某种方式禁用我的应用程序的简历吗?

【问题讨论】:

【参考方案1】:

是的。作为documented in the Lion AppKit release notes,您可以为您的应用程序设置ApplePersistenceIgnoreState 用户默认值。 (文档暗示该值并不重要;只需将其设置为某个值。)

一个简单的方法是在 Xcode 中设置它,仅用于调试运行,同时在您正常使用应用程序时保留状态恢复功能。在您的方案的运行操作中,为-ApplePersistenceIgnoreState 设置一个命令行参数,紧随其后的是另一个具有该值的参数(例如,YES)。这利用了 AppKit 从命令行读取用户默认值的特性。

【讨论】:

在生产环境中禁用恢复的最佳方法是什么? @Patrick:可能将该键的默认值注册为NO。然后,您可以在“首选项”面板中提供一个复选框,以便喜欢简历的用户可以重新启用它。 链接重定向到最新的 AppKit 发行说明。在developer.apple.com/library/prerelease/mac/releasenotes/AppKit/… 上,页面内搜索会告诉您“当定义用户默认 ApplePersistenceIgnoreState 时,现有的可恢复状态和无标题文档将被忽略。新的可恢复状态和无标题文档自动保存被重定向到临时目录,其路径将被记录到控制台。此用户默认值适用于希望从干净环境开始的自动化测试和调试。"

以上是关于防止我的 Cocoa 应用程序“恢复”?的主要内容,如果未能解决你的问题,请参考以下文章

检测 Cocoa 动画是不是正在进行(使用 BOOL)以防止同时出现多个动画

恢复 Python/Cocoa 项目以使用默认的 OSX 10.5 Python (2.5)

Cocoa/iPhone:如何防止凳子在 xib 文件中输出不可本地化的字符串?

防止用户在从远程 ftp 服务器 cocoa 流式传输文件时重命名文件

在基于 Cocoa 文档的应用程序启动中禁用打开面板

NSViewController 用户界面状态恢复