我的应用程序在启动时提示用户使用模板选择器,这在Snow Leopard上工作正常,但在Lion上,窗口永远不会出现,可能是由于恢复行为。
我的应用程序是基于NSDocument的,我使用NSDocumentController在newDocument上打开窗口:(id)sender
现在在Lion上没有与“untitiled”相关的应用程序代表被调用,所以我不知道如何让它工作
我认为XCode 4是基于NSDocument的,它显示了启动面板,它是如何做的?
另一个智能XCode启动面板的行为包括仅在没有其他窗口恢复时显示面板,再次如何在Lion中实现它?
答案 0 :(得分:2)
你怀疑新的可恢复状态行为是正确的。重新启动/恢复时,可能永远不会要求应用程序创建新的空文档。这在发行说明中说明:
作为可还原窗口功能的一部分,应用程序委托 可能不会要求在启动时创建一个无标题窗口 情况。发现这会导致某些应用程序崩溃,所以 这些应用程序将保持10.6行为,更经常打开Untitled 视窗。当这些应用程序在10.7上重新编译时,它们将获得 10.7行为。为了获得最大的兼容性,请不要依赖于被询问 在发布时创建一个无标题窗口。
他们没有提及替代方案,基于文档的应用程序文档似乎尚未使用可恢复的状态信息进行更新。
关于您的方法,您可以进行更改,以便模板选择器在新的空文档窗口(例如,页面或工具)上显示为工作表。完成模板表后,将设置文档的内容。这样,每个新文档都会显示其模板表,但这只会在用户请求新文档时发生,而不是依赖于新的应用程序启动(您不再需要这样做)。