Cocoa 从OSX lion上的浏览器版本还原不工作。。。思想?
我正在尝试从Lion上的早期版本还原基于文档的应用程序。当我选择“还原版本”时,文本视图不会反映更改。但是,如果我关闭应用程序并重新打开,更改就会出现Cocoa 从OSX lion上的浏览器版本还原不工作。。。思想?,cocoa,nstextview,osx-lion,autosave,Cocoa,Nstextview,Osx Lion,Autosave,我正在尝试从Lion上的早期版本还原基于文档的应用程序。当我选择“还原版本”时,文本视图不会反映更改。但是,如果我关闭应用程序并重新打开,更改就会出现 我正在使用NSDocument的文件包装器变体,那么如何使文本视图的文本存储反映立即选择的版本呢?我遗漏了什么吗?我最近也遇到了类似的问题(我的界面似乎没有更新)。您是在WindowControllerdLoadNib:中更新界面还是在awakeFromNib中更新界面?还原文档(还原为上次保存的文档,或在版本浏览器中选择一个版本)时,不会再次调
我正在使用NSDocument的文件包装器变体,那么如何使文本视图的文本存储反映立即选择的版本呢?我遗漏了什么吗?我最近也遇到了类似的问题(我的界面似乎没有更新)。您是在WindowControllerdLoadNib:中更新界面还是在awakeFromNib中更新界面?还原文档(还原为上次保存的文档,或在版本浏览器中选择一个版本)时,不会再次调用windowControllerDidLoadNib:,因为文档已加载,但您的文件包装方法将被调用 我不确定这是否是最好的解决方案,但我要做的是仅当文档被还原时才更新read wrapper方法中的UI。我通过检查一个插座(比如你的textview)是否为零来实现这一点 更新: 更好的解决方案是重写-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;
}
我最近也遇到了类似的问题(我的界面似乎没有更新)。您是在WindowControllerdLoadNib:中更新界面还是在awakeFromNib中更新界面?还原文档(还原为上次保存的文档,或在版本浏览器中选择一个版本)时,不会再次调用windowControllerDidLoadNib:,因为文档已加载,但您的文件包装方法将被调用 我不确定这是否是最好的解决方案,但我要做的是仅当文档被还原时才更新read wrapper方法中的UI。我通过检查一个插座(比如你的textview)是否为零来实现这一点 更新: 更好的解决方案是重写-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;
}
我正在更改readFromFileWrapper中存储区中的文本,并重新加载文本视图。你检查了什么以查看它是否为零?更新了一个更好的答案。我正在更改readFromFileWrapper中存储的文本并重新加载文本视图。你检查了什么,看它是否为零?更新了一个更好的答案。