2010-12-13 16 views
1

Ich bin ein einfacher Texteditor aus diesem Tutorial machen hier: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/TextArchitecture/Tasks/TextEditor.htmlGrafikbild im Texteditor speichern?

Mein Text-Editor speichern, schreiben und geöffneten Dokumente in RTF und TXT-Format, aber Grafiken speichern kann nicht mit einem beliebigen Text zusammen. Formatierter Text wird gespeichert, und die Grafik wird angezeigt, wenn das Fenster geöffnet ist, aber nicht gespeichert.

+0

Zeigen Sie uns, was Sie gerade tun, um das Dokument zu speichern –

Antwort

0

Vielleicht werden Ihre Bilder nicht im selben Verzeichnis gespeichert? zum Beispiel, wenn ich ein RTF-Dokument mit TextEdit erstellen, erstellt es einen Ordner mit dem Namen something.rtfd und enthält die TXT.rtf und alle Bilder.

1

Sie sind fast da, Sie müssen nur ein wenig mehr in der Info.plist Ihrer App implementieren.

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

Beachten Sie, dass in dem Verfahren, das unabhängig davon, werden die Daten gespeichert bittet um eine Datei, was, es ist eingerichtet NSRTFTextDocumentType zu verwenden, anstatt NSRTF * D * TextDocumentType. RTFD bedeutet RTF mit Anhängen, die ein RTF-Dokument speichert, das tatsächlich ein Paket/Bündel ist (ein Ordner, der dem Benutzer wie eine einzelne Datei präsentiert wird). Das Speichern als NSRTFTextDocumentType löscht effektiv die Inhalte, die nicht in ein RTF-Dokument passen, wie die Bilder.

Nach 12 Schritt ist die folgende:

In diesem Stadium seiner Entwicklung, den Editor öffnet und speichert Dokumente nur mit einer Erweiterung von ????. Damit Ihre Anwendung Dokumente mit einem erkannten Dateityp speichern und öffnen kann, müssen Sie Xcode verwenden, um die Einstellungen für Dokumenttypen in der Eigenschaftslistendatei der Anwendung im Ordner Resources in Xcode zu konfigurieren. (Die Xcode-Vorlage benennt die Datei mit Ihrem Projektnamen, gefolgt von -Info.plist.) Sie können diese Datei in Xcode bearbeiten, indem Sie die Datei in der Gruppe Gruppen & Dateien auswählen und den integrierten Editor verwenden. Klicken Sie auf die Dreiecke, um den Wert des ersten Elements unter CFBundleTypeExtensions für die bevorzugte Erweiterung für Ihre Dokumentdateien zu bearbeiten.

Weitere Informationen zu Eigenschaftslistendateien finden Sie unter “Storing Document Types Information in the Application's Property List” in Document-Based Applications Overview. Ausführliche Informationen zu Anwendungseigenschaftslisten finden Sie unter Laufzeitkonfigurationsrichtlinien.

Grundsätzlich werden Sie gerade in einem generischen DocumentType in der oben gezeigten Datenmethode übergeben. Sobald Sie in Ihrer Info.plist angegeben haben, dass Sie RTF- und RTFD-Daten verarbeiten können (als zwei separate Einträge), wird Ihnen in dieser Methode ein anderer Wert übergeben, je nachdem, was der Benutzer in der Popup-Schaltfläche Format im NSSavePanel ausgewählt hat . Sie können den Wert des übergebenen Typs überprüfen und dann NSRTFTextDocumentType oder NSRTFDTextDocumentType entsprechend angeben.

Sie können TextEdit's Info.plist wahrscheinlich als Grundlage für Ihre Dokumenttypen verwenden. Stellen Sie jedoch sicher, dass Sie den Namen der NSDocument-Unterklasse in Ihren eigenen Namen ändern, damit NSDocumentController weiß, welche Klasse verwendet werden soll.

Verwandte Themen