6

我第一次将脚浸入可可。

这是一个简单的问题。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 是否支持这一点?

非常感谢!

4

1 回答 1

2

但是对于基于文档的应用程序,相同的恢复功能是否还可以在文档关闭并稍后重新打开但没有退出应用程序时管理窗口状态的保存?(换句话说,不管应用程序是否退出,它是否可以持久地管理每个文件的状态?

不是没有帮助,没有。

还是我必须通过将信息保存在文档文件中来自己管理它?)

或者其他地方,是的。

我未经测试的建议是尝试自己使用窗口恢复协议。关闭时,发送给自己encodeRestorableStateWithCoder:,然后将该数据存储在您的文档中(或任何您想要的地方)。打开文档时,如果它有可恢复的状态信息,则将其传递给restoreStateWithCoder:.

于 2011-09-29T15:00:50.663 回答