Открытие «нового» документа? - PullRequest
2 голосов
/ 09 февраля 2011

В моем файле myDocument.m реализован некоторый код, который просто пытается загрузить последний использованный документ при запуске.Однако при запуске из новой установки (или после удаления последнего использованного файла) окно «нового» документа не появляется.Кто-нибудь знает, что добавить в мой код, чтобы сделать это?Вот оно:

- (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)sender
{
    NSURL *lastURL=[[NSDocumentController sharedDocumentController] openDocumentWithContentsOfURL:lastURL display:YES error:nil];
    if (lastURL!=nil)
    {
     [docController openDocumentWithContentsOfURL:lastURL display:YES error:nil];    
        return NO;
    }

    return YES;
}

Ответы [ 2 ]

1 голос
/ 09 февраля 2011
- (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)sender
{
    NSArray* urls = [[NSDocumentController sharedDocumentController] recentDocumentURLs];
    if ([urls count] > 0){
        NSURL *lastURL= [urls objectAtIndex: 0];

        if ([[NSDocumentController sharedDocumentController] openDocumentWithContentsOfURL:lastURL display:YES error:nil]){
                   return NO;
             }      

    }

    return YES;
}

EDIT

Я изменил его и попробовал, теперь оно должно работать.

0 голосов
/ 09 февраля 2011

Что такое docController, и почему вы отправляете -openDocumentWithContentsOfURL:display:error: дважды?Обратите внимание, что этот метод возвращает документ, а не URL, поэтому использование возвращаемого значения в качестве URL не будет работать в любом случае.

Ниже приведен более чистый эквивалентный код:

- (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)sender
{
    id lastDoc = [[NSDocumentController sharedDocumentController]
        openDocumentWithContentsOfURL:lastURL
        display:YES error:NULL];
    return (lastDoc == nil);
}

Тем не менее, это по-прежнему не объясняет, почему вы не получите документ без названия.Что произойдет, если вы закомментируете -applicationShouldOpenUntitledFile:, чтобы приложение следовало стандартному поведению Какао?Возможно, проблема в другом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...