Jak wkleić tekst bogaty w UITextView?
Moja aplikacja umożliwia użytkownikom formatowanie tekstu w widoku UITextView poprzez kliknięcie niektórych przycisków formatowania, które stosują atrybuty do właściwości attributesText widoku tekstu. Chcę zezwolić użytkownikom na skopiowanie sformatowanego tekstu z jednego UITextView i wklejenie go do innego przy użyciu standardowego pulpitu i standardowego menu wycinania / kopiowania / wklejania.
Obecnie, jeśli skopiuję sformatowany tekst z UITextView i wkleję go do nowej wiadomości w aplikacji Mail, formatowanie zostanie zachowane - więc kopiowanie sformatowanego tekstu odbywa się automatycznie. Ale jeśli wkleję sformatowany tekst do innego UITextView w mojej aplikacji, pojawi się tylko zwykły tekst.
Postępując zgodnie z sekcją „Wklejanie zaznaczenia” w sekcjiPodręcznik programowania tekstu dla iOS, Udało mi się zastąpić metodę wklejania UITextView i przechwycić wklejoną treść:
- (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]);
}
}
To pokazuje, że obszar roboczy zawiera treść w następujących formatach: com.apple.rtfd, public.rtf, public.text i „Apple Web Archive pasteboard type”. Wartość tekstu to zwykły ciąg tekstowy, wartość rtf to łańcuch RTF, a wartości dwóch formatów Apple to NSData.
Tu utknąłem. W jaki sposób można przetłumaczyć jeden z tych elementów z danych w tablicy na przypisany ciąg, aby ustawić dla UITextView?
Albo jeszcze lepiej, czy istnieje sposób, aby skonfigurować UITextView, aby automatycznie akceptował sformatowany tekst podczas wklejania, w taki sam sposób, w jaki automatycznie dostarcza sformatowany tekst podczas kopiowania?