Dex*_*erW 0 cocoa autosave nstextview osx-lion
我正在尝试从Lion上的先前版本恢复基于文档的应用程序.当我选择"恢复版本"时,文本视图不会反映更改.但是,如果我关闭应用程序并重新打开,则会发生更改.
我正在使用NSDocument的文件包装器变体,那么如何使文本视图的文本存储反映出立即选择的版本?我错过了什么吗?
我最近遇到了类似的问题(我的界面似乎没有更新).你在windowControllerDidLoadNib:或awakeFromNib中更新你的界面?当文档被还原(恢复到上次保存,或在版本浏览器中选择版本)时,不再调用windowControllerDidLoadNib:因为文档已经加载,但是文件包装方法将是.
我不确定这是否是最好的解决方案,但我所做的只是在文件被还原时才更新读取包装器方法中的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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
685 次 |
| 最近记录: |