2011-07-30 17 views
0

以前のバージョンのドキュメントベースのアプリケーションをLionで復元しようとしています。 「バージョンの復元」を選択すると、テキストビューに変更が反映されません。しかし、アプリケーションを閉じてから再度開くと、変更がそこにあります。OSXのライオンのバージョンブラウザから復元することはできません...アイデア?

私はNSDocumentのファイルラッパーの亜種を使用していますので、テキストビューのテキストストレージにすぐに選択されたバージョンが反映されるようにするにはどうすればよいですか?何か不足していますか?

答えて

5

私は最近同様の問題がありました(私のインターフェースは更新されていないようです)。 windowControllerDidLoadNib:またはawakeFromNibでインターフェースを更新していますか?ドキュメントが元に戻ったとき(最後に保存した状態に戻すか、バージョンブラウザでバージョンを選択したとき)、windowControllerDidLoadNib:はドキュメントが既に読み込まれているが、ファイルラッパーメソッドが呼び出されるため、再度呼び出されません。

これが最善の解決策であるかどうかはわかりませんが、ドキュメントを元に戻す場合にのみ読み込みラッパーメソッドでUIを更新してください。私はアウトレット(テキストビューのような)が無しでないかどうかをチェックすることでこれを行います。

更新:ofType:エラー:

よりよい解決策は-revertToContentsOfURLをオーバーライドしている

- (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; 
} 
+0

私はreadFromFileWrapperにストレージ内のテキストを変更し、テキストビューを再ロードしていますよ。あなたはそれがゼロかどうかを確認するために何を確認しましたか? – DexterW

+0

最後に私が間違っていたことが分かった。ありがとう。 – DexterW

+0

より良い答えで更新されました。 – Zorg

関連する問題