【发布时间】:2011-09-29 08:27:55
【问题描述】:
我第一次将脚浸入可可。
这是一个简单的问题。 OS X Lion 支持在应用程序终止和重新启动时恢复窗口状态。好的,很好。
但是对于基于文档的应用程序,相同恢复功能是否也可以在文档关闭并稍后重新打开时管理窗口状态的保存但没有任何退出应用程序? (也就是说,不管应用程序是否退出,它是否可以持久地管理每个文件的状态?或者我必须通过将信息保存在文档文件中来自己管理它?)
例如,iWork '09 应用程序会做这样的事情:如果您关闭保存的文档并重新打开它,它将恢复窗口大小、位置和滚动条位置。我不知道它是否使用 Lion's Resume 本身来做到这一点。
但是,相比之下,OS X Lion 的 TextEdit 会在退出并重新启动时恢复窗口,但 它不会记住当您关闭文档并重新打开它时的窗口状态。这让我怀疑在不退出的情况下使用 Resume 可能无法自动执行(因为 Pages 可能会将窗口状态保持在其专有文件格式中,但 TextEdit 不会,因为它使用纯文本、RTF、HTML 等文件)。
我还没有访问 WWDC 2011 视频的权限,OS X 发行说明、OS X 应用程序编程指南和 NSWindowRestoration API 文档都没有专门讨论这一点。
那么问题又来了:在关闭并重新打开文档窗口后自动记住它的状态而不退出应用程序(就像 iWork 一样)...Lion's Restore 支持这个吗?
非常感谢!
【问题讨论】:
-
Lion 为您提供了自动保存状态的工具(检查 application:willEncodeRestorableState: 和 NSDocument 的 encodeRestorableStateWithCoder:),但您可以选择要保存的方式和状态。
标签: macos cocoa osx-lion restore document-based