NSDocument читать данные RTFD - PullRequest
       16

NSDocument читать данные RTFD

0 голосов
/ 15 февраля 2010

Я работаю над текстовым редактором и хочу добавить поддержку RTFD. После добавления типа файла RTFD в мой Info.plist я получил сообщение, что «readFromFileWrapper: ofType: error: должно быть переопределено, чтобы ваше приложение обрабатывало пакеты файлов».

Я посмотрел в документации и нашел кое-что, но мне не удалось все сделать .. Может кто-то быть таким добрым и помочь мне, пожалуйста?

- (BOOL)readFromFileWrapper:(NSFileWrapper *)fileWrapper ofType:(NSString *)typeName error:(NSError **)outError {

    if ([typeName isEqualToString:@"Rich Text with Attachments"])  {   
        NSLog(@"Its RTFD");
        //it gets to here but I don't know how to load the rtfd data then :(
}

ofType:typeName]    return YES; }

Любая помощь оценивается:)

Ответы [ 2 ]

0 голосов
/ 16 февраля 2010

Я попробовал ваш фрагмент и добился следующего:

Открылось окно NSDocument, заголовок был обновлен до имени файла RTFD, но NSTextView по-прежнему пуст.

Я был почти уверен, что мой код откроет его, так как я сам получил URL из экземпляра NSDocument, преобразовал его в строку NSString и отправил в textview ...

if ([typeName isEqualToString:@"Rich Text with Attachments"]) {
        NSString *urlString = [[self fileURL] absoluteString];
        NSLog(@"%@",urlString);
        [textView readRTFDFromFile:urlString];

        return YES;
    }

Журнал вернул это:

file://localhost/Users/David/Documents/Coursework/Geography%20Coursework.rtfd/

Так это должно работать?

0 голосов
/ 15 февраля 2010

RTFD, к счастью, особенно прост. Проверьте readRTFDFromFile: и writeRTFDToFile:atomically: методы NSText.

Из справочника NSText :

readRTFDFromFile:

Пытается прочитать файл RTFD по path , возвращая YES в случае успеха и NO, если нет.

- (BOOL)readRTFDFromFile:(NSString *)path

Обсуждение
путь должен быть путем к файлу .rtf или .rtfd, а не к RTF-файлу в .rtfd оболочке.

Если вы приехали с NSURL, сделайте что-то вроде этого:

[textView readRTFDFromFile:[[self fileURL] path]];

Чтобы быть в безопасности, сначала позвоните [[self url] isFileURL].

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