mehrere Objekte ins NSPasteboard?

24/08/2007 - 23:57 von aclauss | Report spam
Was ist denn die "richtige" Methode, um mehrere gleiche Objekte (also
z.B. mehrere Files oder mehrere URLs) im selben NSPasteboard abzulegen?

Über "setPropertyList" kann ich zwar bequem ganze Arrays von Objekten
ins Pasteboard legen, aber andere Programme bekommen hierbei dann
tatsàchlich einen XML-Quelltext (also den "Source" der Propertylist).
D.h. wenn ich z.B. mehrere URLs per Drag & Drop auf den Finder ziehen
will, landet dort dann ein Text-Clipping mit dem Propertylist-Quelltext
und keine URL-Dateien.

Über "setString"/"setData" kann ich zwar schön Daten ins Pasteboard
schreiben, die dann auch so ankommen, wie gewünscht, aber hierbei landet
dann immer nur ein Datensatz gleichzeitig im Pasteboard.

Alexander
 

Lesen sie die antworten

#1 Florian Zschocke
25/08/2007 - 09:11 | Warnen spam
(Alexander Clauss) schrieb:

Was ist denn die "richtige" Methode, um mehrere gleiche Objekte (also
z.B. mehrere Files oder mehrere URLs) im selben NSPasteboard abzulegen?

Über "setPropertyList" kann ich zwar bequem ganze Arrays von Objekten
ins Pasteboard legen, aber andere Programme bekommen hierbei dann
tatsàchlich einen XML-Quelltext (also den "Source" der Propertylist).
D.h. wenn ich z.B. mehrere URLs per Drag & Drop auf den Finder ziehen
will, landet dort dann ein Text-Clipping mit dem Propertylist-Quelltext
und keine URL-Dateien.




Du hast scheinbar diesen Satz überlesen o. nicht richtig verstanden.

-
Return value

The property-list object. This object consists of NSArray, NSData,
NSDictionary, or NSString objects—or any combination thereof
-

Ausgehend davon das du mehrere URLs hineinschreiben möchtest, wàre das dann
ein Array mit URLs. Also in etwa:

NSArray* dragTypes = [NSArray arrayWithObjects:NSURLPboardType,nil];
[pboard declareTypes:dragTypes owner:self];
[pboard setPropertyList: *DeinArrayMitURLs* forType:NSURLPboardType];

Wenn Du noch andersartige Objekte übergeben willst musst das in dragTypes
natürlich angeben und Sie Entsprechend mit setPropertyList: forType: an das
Pasteboard übergeben.

Gruß Florian

Ähnliche fragen