Domanda

Le novità di cacao e sto cercando di capire come copiare un NSAttributedString al tavolo di montaggio. Ho guardato nella documentazione e non è sicuro se dovrei utilizzare un NSPasteboardItem oppure no.

Ecco quello che ho da copiare un NSString regolare:

NSPasteboard *pb = [NSPasteboard generalPasteboard];
NSArray *types = [NSArray arrayWithObjects:NSStringPboardType, nil];
[pb declareTypes:types owner:self];

[pb setString:@"asdfasdf" forType:NSStringPboardType];

Come faccio a impostare un NSAttributedString?

Grazie

È stato utile?

Soluzione

Si vuole sia NSRTFPboardType o NSRTFDPboardType insieme del NSAttributedString RTFFromRange:documentAttributes: / RTFDFromRange:documentAttributes: e setData sul tavolo di montaggio.

Altri suggerimenti

Come di Snow Leopard, NSAttributedString (se alimentato da AppKit) è conforme alle NSPasteboardWriting , in modo da poter semplicemente fare questo:

[pb clearContents];
[pb writeObjects:arrayOfAttributedStrings];

Puoi inviare un messaggio di NSArray arrayWithObject: se si dispone di una sola corda attribuito che si desidera mettere sul tavolo di montaggio

.

[Modifica dal l'anno 2013: Oppure utilizzare la nuova sintassi @[ myAttributedString ] lucido. Funziona per qualsiasi numero di oggetti, anche se hanno ancora bisogno di tutto conformi a NSPasteboardWriting in questo contesto.]

Questo vale per NSString pure. Cerca le intestazioni AppKit per “NSPasteboardWriting” per trovare tutte le classi di cacao standard che lo supportano.

NSPasteboard *paste = [NSPasteboard generalPasteboard];  
[paste clearContents];      
[paste declareTypes:[NSArray arrayWithObject:NSStringPboardType] owner:nil];
NSMutableAttributedString *aString;// init some string
BOOL success =  [paste writeObjects:[NSArray arrayWithObject:aString]];
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top