Copia NSAttributedString di cartone
-
24-09-2019 - |
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
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]];