Como colar rich text em um UITextView?

Meu aplicativo permite que os usuários formatem texto em um UITextView clicando em alguns botões de formatação que aplicam atributos à propriedade assignedText da exibição de texto. Eu quero permitir que os usuários copiem o texto formatado de um UITextView e cole-o em outro usando o menu de recorte padrão e o menu padrão de recortar / copiar / colar.

Atualmente, se eu copiar texto formatado de um UITextView e colá-lo em uma nova mensagem no aplicativo Mail, a formatação será preservada - portanto, a cópia do texto formatado está acontecendo automaticamente. Mas se eu colar o texto formatado em outro UITextView no meu aplicativo, apenas o texto simples aparecerá.

Seguindo a seção "Colando a seleção" noGuia de programação de texto para iOS, Eu pude substituir o método paste do UITextView e interceptar o conteúdo colado:

- (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]);
    }
}

Isso mostra que o papelão contém conteúdo nos seguintes formatos: com.apple.rtfd, public.rtf, public.text e "tipo de quadro de cópia do Apple Web Archive". O valor para o texto é uma string de texto simples, o valor para o rtf é uma string RTF e os valores para os dois formatos da Apple são NSData.

É aqui que estou preso. Como posso traduzir um desses itens dos dados de pasteboard para uma string atribuída para definir o UITextView?

Ou melhor ainda, existe uma maneira de configurar o UITextView para aceitar texto formatado automaticamente ao colar, da mesma forma que ele fornece texto formatado automaticamente ao copiar?

questionAnswers(1)

yourAnswerToTheQuestion