从 OSX lion 上的版本浏览器恢复不起作用...有什么想法吗?

2024-03-25

我正在尝试从 Lion 上的先前版本恢复基于文档的应用程序。当我选择“恢复版本”时,文本视图不反映更改。但是,如果我关闭应用程序并重新打开,更改就会出现。

我正在使用 NSDocument 的文件包装器变体,那么如何使文本视图的文本存储反映立即选择的版本?我错过了什么吗?


我最近也遇到了类似的问题(我的界面似乎没有更新)。您是否在 windowControllerDidLoadNib: 或 awakeFromNib 中更新界面?当文档恢复时(恢复到上次保存的状态,或在版本浏览器中选择版本),不会再次调用 windowControllerDidLoadNib: ,因为文档已经加载,但您的文件包装器方法将会加载。

我不确定这是否是最佳解决方案,但我所做的是仅在恢复文档时才更新读取包装器方法中的 UI。我通过检查插座(如您的文本视图)是否不为零来做到这一点。

Update:

更好的解决方案是覆盖 -revertToContentsOfURL:ofType:error:

- (BOOL)revertToContentsOfURL:(NSURL *)absoluteURL ofType:(NSString *)typeName error:(NSError * __autoreleasing *)outError
{
    BOOL reverted = [super revertToContentsOfURL:absoluteURL ofType:typeName error:outError];
    if (reverted)
    {
        // re-update interface
    }
    return reverted;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 OSX lion 上的版本浏览器恢复不起作用...有什么想法吗? 的相关文章

随机推荐