2012-02-15 2 views
2

Когда я реализую следующий код для копирования текста в объекте NSTextView посредством действия, а затем вручную вставляю его в нечто вроде текстового редактора или почтового клиента, вложенный текст представляет собой одну длинную строку.Копирование текста NSTextView

Как сохранить форматирование текста?

Спасибо.

NSString *string = [outputText string]; 

NSPasteboard *pasteBoard = [NSPasteboard generalPasteboard]; 
[pasteBoard declareTypes:[NSArray arrayWithObjects:NSStringPboardType, nil] owner:nil]; 
[pasteBoard setString:string forType:NSStringPboardType] 

ответ

2

Вам не нужно ничего делать, чтобы осуществить копирование NSTextView текста. NSTextView является подклассом NSText и наследует метод copy:.

Чтобы скопировать текущий текст в буфер обмена, просто позвоните [yourTextView copy:self];.

Как объяснено в the docs, если ваш вид текста установлен, чтобы форматированный текст, то буфер будет содержать обычную строку (NSStringPboardType) и приписываемую строку (NSRTFPboardType).