Как вставить форматированный текст в UITextView?

Мое приложение позволяет пользователям форматировать текст в UITextView, нажимая некоторые кнопки форматирования, которые применяют атрибуты к свойству attributetedText текстового представления. Я хочу позволить пользователям копировать их форматированный текст из одного UITextView и вставлять его в другой, используя стандартный монтажный картон и стандартное меню вырезания / копирования / вставки.

В настоящее время, если я копирую форматированный текст из UITextView и вставляю его в новое сообщение в приложении «Почта», форматирование сохраняется - поэтому копирование форматированного текста происходит автоматически. Но если я вставлю форматированный текст в другой UITextView в моем приложении, появится только простой текст.

Следуя "Вставка выбора " раздел вТекстовое руководство по программированию для iOSЯ смог переопределить метод вставки UITextView и перехватить вставленный контент:

- (void)paste:(id)sender {
    UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
    NSLog(@"types available: %@", [pasteboard pasteboardTypes]);
    for (NSString *type in [pasteboard pasteboardTypes]) {
        NSLog(@"type %@ (%@): %@", type, NSStringFromClass([[pasteboard valueForPasteboardType:type] class]), [pasteboard valueForPasteboardType:type]);
    }
}

Это показывает мне, что монтажная доска содержит контент в следующих форматах: com.apple.rtfd, public.rtf, public.text и "Тип картона Apple Web Archive ", Значением для текста является обычная текстовая строка, значением для rtf является строка RTF, а значениями для двух форматов Apple являются NSData.

Это где яЯ застрял. Как я могу перевести один из этих элементов из данных монтажной панели в атрибутивную строку, чтобы установить для UITextView?

Или, что еще лучше, есть ли способ настроить UITextView для автоматического принятия форматированного текста при вставке, так же, как он автоматически предоставляет форматированный текст при копировании?

Ответы на вопрос(1)

Ваш ответ на вопрос