открытие файлов с разными расширениями с помощью какао - PullRequest
0 голосов
/ 06 июня 2011

У меня есть приложение на основе NSDocument, которое уже обрабатывает * .txt файлы.Я могу перетащить эти файлы в док-станцию, и мое приложение запустится правильно.

Теперь я хочу иметь возможность открывать и файлы * .text.Поэтому я добавил:

<key>CFBundleTypeExtensions</key>
    <array>
        <string>.txt</string>
        <string>.text</string>
    </array>

в мой * plist

Однако я не могу открыть * .text файлы, перетаскивая их в док-станцию.(Я могу сделать MyApp> File> Open> myFile.text). Я могу открыть * .txt как обычно и перетащить их в док.

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

- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename{
    NSURL *url = [NSURL URLWithString:filename];
    NSError *error = nil;
    [[NSDocumentController sharedDocumentController] openDocumentWithContentsOfURL:url display:YES error:&error];
    if (error) {
        NSLog(@"error: %@", [error localizedDescription]);
        error = nil;
        return NO;
    }
    return YES;
}

- (void)application:(NSApplication *)sender openFiles:(NSArray *)filenames{
    for (NSString *filename in filenames) {
        [self application:sender openFile:filename];
    }
}

Ошибка:

typeForContentsOfURL: ошибка: должна быть переопределена, чтобы ваше приложение поддерживало URL-адреса, отличные от 'file:'.

Iя не делаю подкласс NSDocumentController, так что мне действительно нужно?или есть лучший / более простой способ сделать это?

Заранее спасибо

1 Ответ

0 голосов
/ 06 июня 2011

Расширения файлов в файле Info.plist не должны содержать символ точки (.). Что произойдет, если вы сделаете это?:

<key>CFBundleTypeExtensions</key>
    <array>
        <string>txt</string>
        <string>text</string>
    </array>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...