我正在以前的Snow Leopard应用程序中实现Resume。对于我的应用程序的主窗口,我检查了Interface Builder中的Restorable
复选框,一切正常。它的代表有-window:willEncodeRestorableState:state
和-window:didDecodeRestorableState:
来电,就好了。一切正常。
我有另一个窗口,当用户退出时,有时也会打开。我检查了Restorable
,并实现了上述两种方法。当我打开窗口退出时会调用..willEncode..
,但..didDecode..
永远不会被调用,窗口也无法恢复。我已经阅读了documentation,似乎我可能想创建一个恢复类,但文档并没有特别清楚如何这样做。
我尝试在我的AppDelegate中实现<NSWindowRestoration>
协议,并在我的第二个可恢复窗口的委托中,但+restoreWindowWithIdentifier:state:completionHandler:
方法从未被调用过任何一个。
我错过了什么?我与NSWindowRestoration
走在正确的轨道上,但做得不对吗?文档谈论修复类的方式,听起来就像只有一个。我是否需要在应用程序的plist中指定它?
答案 0 :(得分:1)
以上链接的Resume documentation忽略了提及的是NSWindow
的{{3}}属性。如果在代码中设置此属性(对于实现<NSWindowRestoration>
的类,则该类负责创建窗口。