2010-12-13 2 views
1

Я делаю базовый текстовый редактор из этого учебника здесь: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/TextArchitecture/Tasks/TextEditor.htmlСохранение графического изображения в текстовом редакторе?

Мой текстовый редактор может спасти, писать и открывать документы в формате RTF и TXT формате, но не может сохранить графики вместе с любым текстом. Отформатированный текст сохраняется, и графическое изображение отображается, когда окно открыто, но не сохраняется.

+0

Покажите нам, что вы на самом деле делаете, чтобы сохранить документ в настоящий момент –

ответ

0

Возможно, ваши изображения не сохранены в том же каталоге? например, если я создаю документ rtf с помощью TextEdit, он создает папку с именем something.rtfd и содержит TXT.rtf и все изображения.

1

Вы почти находитесь, вам просто нужно реализовать немного больше в Info.plist вашего приложения.

- (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError 
{ 
NSData *data; 
[self setString:[textView textStorage]]; 
NSMutableDictionary *dict = 
[NSDictionary dictionaryWithObject:NSRTFTextDocumentType 
forKey:NSDocumentTypeDocumentAttribute]; 

Обратите внимание, что в методе, который запрашивает данные не должны быть сохранены в файл, независимо от того, что, он настроен на использование NSRTFTextDocumentType вместо NSRTF * D * TextDocumentType. RTFD означает RTF с вложениями, который сохраняет документ .rtfd, который на самом деле является пакетом/пакетом (папка, представленная пользователю, как если бы это был один файл). Сохранение как NSRTFTextDocumentType эффективно отбрасывает материал, который не может вписаться в документ RTF, например изображения.

После шага 12 является следующее:

На данном этапе своего развития, ваш редактор открывает и сохраняет документы только с расширением ????. Чтобы ваше приложение сохраняло и открывало документы с распознанным типом файла, вам нужно использовать Xcode для настройки параметров типов документов в файле списка свойств приложения в папке «Ресурсы» в Xcode. (Шаблон Xcode называет файл с именем вашего проекта, за которым следует -Info.plist.) Вы можете отредактировать этот файл в Xcode, выбрав файл в списке групп & и используя встроенный редактор. Щелкните треугольники раскрытия, чтобы изменить значение первого элемента в CFBundleTypeExtensions на предпочтительное расширение для файлов документов.

Дополнительную информацию о файлах списков свойств см. В разделе “Storing Document Types Information in the Application's Property List” в документе «Обзор приложений на основе документов». Полную информацию о списках свойств приложений см. В Руководстве по настройке времени выполнения.

В принципе, прямо сейчас вы передаёте общий тип DocumentType в этот метод данных, показанный выше. Как только вы заявите в своем Info.plist, что вы можете обрабатывать RTF и RTFD данные (в виде двух отдельных записей), вы будете переданы другим способом в этом методе, в зависимости от того, что пользователь выбрал во всплывающей кнопке Format в NSSavePanel , Вы можете проверить значение пройденного типа, а затем указать соответственно тип NSRTFTextDocumentType или NSRTFDTextDocumentType.

Возможно, вы можете использовать Info.plist TextEdit для использования в качестве основы ваших типов документов, хотя обязательно замените имя подкласса NSDocument на свой собственный, чтобы NSDocumentController знал, какой класс использовать.

Смежные вопросы