从 OSX lion 上的版本浏览器恢复不起作用...有什么想法吗?
我正在尝试从 Lion 上的先前版本恢复基于文档的应用程序。当我选择“恢复版本”时,文本视图不反映更改。但是,如果我关闭应用程序并重新打开,更改就会出现。
我正在使用 NSDocument 的文件包装器变体,那么如何使文本视图的文本存储反映立即选择的版本?我错过了什么吗?
I'm trying to restore a document based application from a previous version on Lion. When I select "restore version", the text view doesn't reflect the changes. However, if I close the application and reopen, the changes are there.
I'm using the file wrapper variants of NSDocument, so how can I make the text view's text storage reflect the version that's selected immediately? Am I missing something?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我最近也遇到了类似的问题(我的界面似乎没有更新)。您是否在 windowControllerDidLoadNib: 或 awakeFromNib 中更新界面?当文档恢复时(恢复到上次保存的状态,或在版本浏览器中选择版本),不会再次调用 windowControllerDidLoadNib: ,因为文档已经加载,但您的文件包装器方法将会加载。
我不确定这是否是最佳解决方案,但我所做的是仅在恢复文档时才更新读取包装器方法中的 UI。我通过检查插座(如您的文本视图)是否不为零来做到这一点。更新:
更好的解决方案是覆盖 -revertToContentsOfURL:ofType:error:
I had a similar problem recently (my interface didn't seem to update). Are you updating your interface in windowControllerDidLoadNib: or awakeFromNib ? When a document is reverted (revert to last saved, or selecting a version in the versions browser), windowControllerDidLoadNib: is not called again because the document is already loaded, but your file wrapper method will be.
I'm not sure if this is the best solution, but what I do is update the UI in the read wrapper method only if the document is being reverted. I do this by checking if an outlet (like your textview) is not nil.Update:
A better solution is overriding -revertToContentsOfURL:ofType:error: