Colar texto formatado, não imagens ou HTML

Estou tentando emular o comportamento da área de transferência dos aplicativos iOS Pages e Keynote. Em resumo, permitindo que a formatação básica de texto NSAttributedString (ou seja, BIU) seja colada em um UITextView, mas não em imagens, HTML, etc.

RESUMO DE COMPORTAMENTO

Se você copiar texto formatado do aplicativo Notes, Evernote ou texto e imagens de um site, o Pages colará apenas a sequência de texto sem formataçãoSe você copiar texto formatado de dentro do Pages ou Keynote, ele colará o texto formatado em outro local no Pages, Keynote, etc.Uma conseqüência indesejada, mas talvez seja importante reconhecer, é que nem o aplicativo Notes nem o Evernote colam texto formatado copiado do Pages ou do Keynote. Estou especulando que a discrepância entre aplicativos é o uso de NSAttributedStrings, versus HTML?

Como isso é realizado? No Mac OS, parece que você podepeça ao cartão para retornar tipos diferentes por si só, ele fornece um rich text e uma representação de string e usa o rich text como preferencial. Infelizmente, o readObjectsForClasses não parece existir para iOS. Dito isso, posso ver via log que o iOS tem um tipo de papelão relacionado ao RTF,graças a este post. No entanto, não consigo encontrar uma maneira de solicitar uma versão NSAttributedString do conteúdo da área de transferência para que eu possa priorizá-la para colar.

FUNDO

Eu tenho um aplicativo que permite formatação editável básica do usuário NSAttributedString (ou seja, negrito, itálico, sublinhado) de texto no UITextViews. Os usuários desejam copiar texto de outros aplicativos (por exemplo, página da Web no Safari, texto no aplicativo Notes), para colar em um UITextView no meu aplicativo. Permitir que o cartão funcione como padrão significa que posso acabar com cores de fundo, imagens, fontes etc. que meu aplicativo não pretende manipular. O exemplo abaixo mostra o texto de como o texto copiado com uma cor de plano de fundo se parece quando colado no UITextView do meu aplicativo.

Eu posso superar 1 subclassificando UITextView

- (void)paste:(id)sender
{
    UIPasteboard *pasteBoard = [UIPasteboard generalPasteboard];
    NSString *string = pasteBoard.string;
    NSLog(@"Pasteboard string: %@", string);
    [self insertText:string];
}

A consequência não intencional é perder a capacidade de reter a formatação do texto copiado de dentro do meu aplicativo. Os usuários podem copiar texto de um UITextView no meu aplicativo e colá-lo em outro UITextView no meu aplicativo. Eles esperam que a formatação (ou seja, negrito, itálico, sublinhado) seja mantida.

Apreciação e sugestões apreciadas.

questionAnswers(2)

yourAnswerToTheQuestion