Мое приложение позволяет пользователям форматировать текст в UITextView, щелкая некоторые кнопки форматирования, которые применяют атрибуты к атрибуту атрибута text для текстового представления. Я хочу разрешить пользователям копировать форматированный текст из одного UITextView и вставлять его в другое, используя стандартное меню и стандартное меню cut/copy/paste.Как вставить богатый текст в UITextView?
В настоящее время, если я копирую форматированный текст из UITextView и вставляю его в новое сообщение в приложении Mail, форматирование сохраняется - поэтому копирование форматированного текста происходит автоматически. Но если я вставляю форматированный текст в другой UITextView в моем приложении, появляется только обычный текст.
Следуя «вставляя Selection» раздел в Text Programming Guide for 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 для автоматического форматирования текста при вставке, так же как при автоматическом копировании текста форматированного текста?
Шахта работает нормально по умолчанию и принимает вставляемый форматированный текст. Уверены ли вы, что uitextview установлен для обработки насыщенного текста. Вы пытались копировать форматированный текст и вставлять его обратно в тот же uitextview. –
Если я вставляю форматированный текст обратно в тот же текстовый вид, он по-прежнему отображается как обычный текст. – arlomedia
Я хотел иметь возможность иметь некоторые атрибуты, но не все, и более пользовательское поведение вставки/копирования. Ознакомьтесь с некоторыми возможными ценными сведениями: http://stackoverflow.com/a/38211885/1054573 –