2011-07-30 2 views
0

Lion의 이전 버전에서 문서 기반 응용 프로그램을 복원하려고합니다. "버전 복원"을 선택하면 텍스트보기에 변경 사항이 반영되지 않습니다. 그러나 응용 프로그램을 닫고 다시 열면 변경 사항이 있습니다.OSX 사자에서 버전 브라우저에서 복원하면 아이디어가 작동하지 않습니까?

NSDocument의 파일 래퍼 변형을 사용하고 있으므로 텍스트보기의 텍스트 저장소가 선택한 버전을 즉시 반영하도록하려면 어떻게해야합니까? 내가 놓친 게 있니?

답변

5

최근에 유사한 문제가 발생했습니다 (내 인터페이스가 업데이트되지 않은 것 같습니다). windowControllerDidLoadNib : 또는 awakeFromNib에서 인터페이스를 업데이트하고 있습니까? 문서가 되돌아 왔을 때 (마지막으로 되돌 리거나 버전 브라우저에서 버전 선택) windowControllerDidLoadNib :는 문서가 이미로드되었으므로 다시 호출되지 않지만 파일 래퍼 메소드는 다시 호출됩니다.

이것이 최선의 해결책인지 잘 모르겠지만 문서를 되 돌리는 경우에만 읽기 래퍼 메서드에서 UI를 업데이트해야합니다. 나는 콘센트가 (텍스트 뷰와 같은) nil이 아닌지 확인하여이 작업을 수행합니다.

업데이트 : 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

관련 문제