Ich möchte eine Zeile aus meiner Tabellenansicht ziehen und sie in ein beliebiges anderes NSTextField in Mac OS X 10.6 einfügen und eine Textzeile löschen lassen.String-Daten von My Cocoa App in die Cocoa-App von Drittanbietern ziehen
Drag & Drop funktioniert bereits innerhalb meiner App (zwischen einem NSTableView und einem NSBrowser), aber ich habe keinen Erfolg beim Einfügen von Daten auf der Pappe, die von anderen Apps als der Quellanwendung akzeptiert werden.
Hier ist der Code, den ich versuchte, die ich dachte, würde ausreichen, um hte Wort „Hallo“ zu ‚geklebt‘, wenn ich fallen in eine andere NSTextField zu bekommen:
-(BOOL) tableView:(NSTableView *)tableView writeRowsWithIndexes:(NSIndexSet *)rowIndexes toPasteboard:(NSPasteboard *)pboard {
[pboard declareTypes:[NSArray arrayWithObject:NSStringPboardType] owner:self];
[pboard setString:@"hello" forType:NSStringPboardType];
return YES;
}
// -
Ich bekomme nie den Cursor, der mir zeigt, dass der Tropfen akzeptiert wird, und es funktioniert einfach nicht.
- Dinge, die ich habe versucht:
- die Version 10.5 des Pappen Kennung verwenden, NSStringPBoardType
- die 10.6-Version verwenden, NSPasteboardTypeString.
- Einstellung der Besitzer = Nil, da ich die Daten nicht träge bereitstellen.
- die Schlüsselarchivierungs Verwendung: [pboard setData: [NSKeyedArchiver archivedRootObject: @ "Hallo !!"]]
Keines der oben genannten gearbeitet haben. Ich denke, ich habe die richtigen Konzepte: "Daten kodieren, der Pappe mitteilen, was du hast, und dann die Daten angeben", aber da andere Apps es nicht erkennen, vermute ich, dass ich der Pappe nicht den richtigen Datentyp erzähle .
Wohin gehe ich falsch?
Danke, Woody
Das ist es total. Sie haben diese Linie fallen gelassen, wie Sie gesagt haben, und jetzt sind alle Motoren weg. Vielen Dank. – Woodster