2011-11-04 8 views
12

come sapete l'app di posta in iOS 5 dispone di un editor di testo avanzato esiste un modo possibile di utilizzare questa funzionalità per un normale UITextView?Utilizzo dell'editor di testo RT5 per iOS 5

enter image description here

+0

Non sembra possibile da quanto ho capito http://stackoverflow.com/questions/4688332/how-to -old-text-in-uitextview sarebbe una buona cosa se fosse possibile. – jbat100

risposta

1

L'iOS 5 ricchi di controllo di modifica del testo è presente anche in app note in iOS 4 (fare una ricca nota di testo sul computer e di sincronizzazione per vedere).

Questo è un controllo personalizzato di Apple che utilizzano nelle proprie app, ma non è pubblicato in alcuna API di sviluppo ufficiale. Probabilmente è nell'SDK da qualche parte, ma poiché non è documentato, anche se lo trovi e lo usi, Apple rifiuterà la tua app.

In sostanza, se si desidera un controllo rich text, è necessario crearne uno proprio.

Modifica: Provare a utilizzare questo: https://github.com/omnigroup/OmniGroup/tree/master/Frameworks/OmniUI/iPad/Examples/TextEditor/. Non l'ho usato, quindi non so quanto funzionerà. (Link da this question)

25

So di due approcci fondamentali per la creazione di un editor di testo ricco di iOS 5:

  1. Usa Nucleo di testo e una visualizzazione personalizzata. Non ho alcuna esperienza con questo approccio.

  2. Utilizzare UIWebView (anziché UITextView) e l'attributo HTML contentEditable. L'idea di base è caricare un documento HTML personalizzato dalla directory delle risorse dell'app. Il minimo che ha bisogno di questo:

    < div contentEditable > TEXT_PLACEHOLDER </div >

Per inizializzare il ricco panorama editor di testo: 1. Caricare il contenuto di questo file in un NSMutableString e sostituisci la stringa TEXT_PLACEHOLDER con il testo che desideri modificare. 2. Inviare il messaggio loadHTMLString:baseURL: a UIWebView con quella stringa HTML.

Ora hai una UIWebView che visualizza il tuo testo all'interno di div con contentEditable. A questo punto, dovresti essere in grado di eseguire la tua app, toccare il testo e presentarsi con un cursore e poter aggiungere/rimuovere testo. Il passaggio successivo consiste nell'aggiungere funzionalità di formattazione rich text. Questo è fatto con una serie di semplici chiamate di funzione javascript. Vedi the Mozilla documentation on contentEditable per un ottimo riferimento. Si vuole anche aggiungere una funzione Javascript al file modello HTML come questo:

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

modo da poter facilmente recuperare il testo modificato in formato HTML usando [myWebView stringByEvaluatingJavaScriptFromString:@"getHtmlContent()"]. Puoi anche aggiungere elementi del menu contestuale personalizzati come mostrato nella schermata della domanda.

Se si ha accesso al centro di sviluppo iOS di Apple, la sessione WWDC Rich Text Editing in Safari on iOS parla di questo approccio.

Una variante di questo approccio consiste nell'utilizzare un editor di testo RTF di terze parti come TinyMCE. Ho sentito parlare di un certo successo con l'integrazione di questo in un UIWebView in iOS 5. Ancora una volta si basa sull'attributo contentEditable.

+0

L'approccio HTML funziona totalmente, fantastico !!!!! – Nitin