2011-11-04 12 views
12

como usted sabe la aplicación de correo en iOS 5 tiene un editor de texto enriquecido ¿hay alguna manera posible de usar esta característica para un UITextView regular?Usando el editor de texto enriquecido iOS 5

enter image description here

+0

No parece posible por lo que entiendo http://stackoverflow.com/questions/4688332/how-to -bold-text-in-uitextview sería una buena cosa si fuera posible. – jbat100

Respuesta

1

Los ricos de control de edición de texto iOS 5 también está presente en la aplicación de notas en el IOS 4 (hacer una nota de texto enriquecido en el ordenador y sincronizarlo para ver).

Este es un control personalizado hecho por Apple que utilizan en sus propias aplicaciones, pero no está publicado en ninguna API de desarrollador oficial. Probablemente esté en el SDK en alguna parte, pero debido a que no está documentado, incluso si lo encuentras y lo usas, Apple rechazará tu aplicación.

Básicamente, si quiere un control de texto enriquecido tendrá que hacer el suyo propio.

Editar: Pruebe con esto: https://github.com/omnigroup/OmniGroup/tree/master/Frameworks/OmniUI/iPad/Examples/TextEditor/. No lo he usado, así que no sé qué tan bien funcionará. (Enlace de this question)

25

Conozco dos enfoques fundamentales para la creación de un editor de texto enriquecido en IOS 5:

  1. texto Uso de núcleo y una vista personalizada. No tengo ninguna experiencia con este enfoque.

  2. Use un UIWebView (en lugar de un UITextView) y el atributo HTML contentEditable. La idea básica es cargar un documento HTML personalizado desde el directorio de recursos de la aplicación. El mínimo que se necesita es la siguiente:

    < div contentEditable > TEXT_PLACEHOLDER </div >

Para inicializar los ricos vista del editor de texto: 1. Cargar el contenido de este archivo en un NSMutableString y reemplace la cadena TEXT_PLACEHOLDER con el texto que desea editar. 2. Envíe el mensaje loadHTMLString:baseURL: a UIWebView con esa cadena HTML.

Ahora tiene UIWebView mostrando su texto dentro de div con contentEditable. En este punto, debería poder ejecutar su aplicación tocando el texto, y presentar un cursor y poder agregar/eliminar texto. El siguiente paso es agregar funcionalidad de formateo de texto enriquecido. Esto se hace con un conjunto de llamadas a funciones de JavaScript simples. Vea the Mozilla documentation on contentEditable para una gran referencia. También tendrá que añadir una función JavaScript para el archivo de plantilla HTML así:

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

manera que pueda recuperarlos fácilmente el texto editado como HTML usando [myWebView stringByEvaluatingJavaScriptFromString:@"getHtmlContent()"]. También puede agregar elementos personalizados del menú contextual como se muestra en la captura de pantalla de su pregunta.

Si tiene acceso al centro de desarrollo de Apple iOS, la sesión de WWDC Rich Text Editing in Safari on iOS habla acerca de este enfoque.

Una variación de este enfoque es utilizar un editor de texto enriquecido de terceros como TinyMCE. He oído hablar de cierto éxito al integrar esto en UIWebView en iOS 5. De nuevo, esto depende del atributo contentEditable.

+0

¡El enfoque HTML funciona totalmente, increíble! – Nitin

Cuestiones relacionadas