Скопируйте NSAttributedString в область монтажа

Совершенно новый к Какао и я пытаюсь выяснить, как скопировать NSAttributedString в область монтажа. Я выглядел в документах и не уверенным, если я, как предполагается, использую NSPasteboardItem или нет.

Вот то, что я должен скопировать регулярный NSString:

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

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

Как я устанавливаю NSAttributedString?

Спасибо

7
задан Chris 5 April 2010 в 21:50
поделиться

2 ответа

Вам нужен NSRTFPboardType или NSRTFDPboardType вместе с NSAttributedString's RTFFromRange: documentAttributes: / RTFDFromRange: и setData на картоне.

6
ответ дан 6 December 2019 в 11:47
поделиться

Что касается Snow Leopard, NSAttributedString (при включении AppKit) соответствует NSPasteboardWriting , поэтому вы можете просто сделать это:

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

Вы можете отправить NSArray arrayWithObject: сообщение , если у вас есть только одна строка с атрибутами, которую вы хотите поместить на монтажный стол.

[Редактировать с 2013 года: Или используйте блестящий новый синтаксис @ [myAttributedString] . Работает для любого количества объектов, хотя все они должны соответствовать NSPasteboardWriting в этом контексте.]

Это также относится к NSString. Найдите в заголовках AppKit «NSPasteboardWriting», чтобы найти все стандартные классы Какао, которые его поддерживают.

10
ответ дан 6 December 2019 в 11:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: