Подтвердить что ты не робот

Использование текстового редактора iOS 5

поскольку вы знаете, что приложение Mail в iOS 5 имеет богатый текстовый редактор, есть ли какой-либо возможный способ использования этой функции для обычного UITextView?

enter image description here

4b9b3361

Ответ 1

Элемент управления редактированием текста iOS 5 также присутствует в приложении заметок в iOS 4 (сделайте надпись на компьютере и синхронизируйте его, чтобы увидеть).

Это пользовательский элемент управления Apple, который они используют в своих приложениях, но он не публикуется ни в одном официальном API разработчика. Вероятно, в SDK, но поскольку он недокументирован, даже если вы его найдете и используете, Apple отклонит ваше приложение.

В принципе, если вы хотите использовать расширенный текстовый элемент управления, вам придется сделать свой собственный.

Изменить: Попробуйте использовать это: https://github.com/omnigroup/OmniGroup/tree/master/Frameworks/OmniUI/iPad/Examples/TextEditor/. Я не использовал его, поэтому я не знаю, насколько он будет работать. (Ссылка из на этот вопрос)

Ответ 2

Я знаю два фундаментальных подхода к созданию богатого текстового редактора в iOS 5:

  • Используйте основной текст и пользовательский вид. У меня нет опыта такого подхода.

  • Используйте UIWebView (вместо UITextView) и атрибут contentEditable HTML. Основная идея - загрузить пользовательский HTML-документ из каталога ресурсов приложений. Его минимальный минимум:

    < div contentEditable > TEXT_PLACEHOLDER </div>

Чтобы инициализировать представление редактора расширенного текста: 1. Загрузите содержимое этого файла в NSMutableString и замените строку TEXT_PLACEHOLDER текстом, который вы хотите отредактировать. 2. Отправьте сообщение loadHTMLString:baseURL: в UIWebView с помощью этой строки HTML.

Теперь у вас есть UIWebView, отображающий ваш текст внутри div с contentEditable. На этом этапе вы сможете запустить приложение, нажав на текст, и будете представлены курсором и сможете добавлять/удалять текст. Следующий шаг - добавить функциональность форматирования текста. Это делается с помощью набора простых вызовов функций javascript. См. документацию Mozilla по contentEditable для отличной ссылки. Вы также захотите добавить функцию Javascript в свой файл HTML-шаблона следующим образом:

function getHtmlContent() { return document.getElementById('myDiv').innerHTML; }

Таким образом, вы можете легко получить отредактированный текст в формате HTML с помощью [myWebView stringByEvaluatingJavaScriptFromString:@"getHtmlContent()"]. Вы также можете добавлять пользовательские элементы контекстного меню, как показано на экране в своем вопросе.

Если у вас есть доступ к центру Apple iOS, сессия WWDC Rich Text Editing в Safari на iOS рассказывает об этом.

Вариантом такого подхода является использование стороннего богатого текстового редактора, такого как TinyMCE. Я слышал о некоторых успехах с интеграцией этого в UIWebView в iOS 5. Снова это зависит от атрибута contentEditable.

Ответ 3

Вот моя реализация. По-прежнему не добавлены функциональные возможности UIMenuController, но планируется добавить их в ближайшее время.

https://github.com/aryaxt/iOS-Rich-Text-Editor

Ответ 4

посмотрите https://github.com/gfthr/FastTextView, который является более хорошим редактором с открытым исходным кодом, чем редактор Omni