Восстановление из версий браузера на OSX Lion не работает ... идеи? - PullRequest
0 голосов
/ 30 июля 2011

Я пытаюсь восстановить основанное на документе приложение из предыдущей версии на Lion. Когда я выбираю «восстановить версию», текстовое представление не отражает изменения. Однако, если я закрою приложение и снова открою, изменения будут.

Я использую варианты оболочки файлов NSDocument, так как я могу сделать так, чтобы текстовое хранилище текстового представления отражало выбранную версию? Я что-то упустил?

1 Ответ

5 голосов
/ 31 июля 2011

У меня недавно была похожая проблема (мой интерфейс не обновлялся). Вы обновляете свой интерфейс в windowControllerDidLoadNib: или в awakeFromNib? Когда документ возвращается (возвращается к последнему сохраненному или выбирает версию в браузере версий), windowControllerDidLoadNib: больше не вызывается, потому что документ уже загружен, но ваш метод обертки файла будет.

Я не уверен, является ли это лучшим решением, но я обновляю пользовательский интерфейс в методе чтения оболочки только в том случае, если документ переворачивается. Я делаю это, проверяя, не является ли выход (например, ваше текстовое представление) нолем.

Обновление:

Лучшим решением является переопределение -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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...