2012-03-24 12 views
0

Ich versuche, einen Rich-Text-Editor mit einem Inhalt bearbeiten UIWebView, wie UITextView keine Bereicherung. Ich frage mich, wie ich eine Auswahl programmatisch ersetzen oder HTML-Code einfügen kann (zum Beispiel um einen Link zum ausgewählten Text zu erstellen oder um eine Such-/Ersetzungsfunktion zu implementieren). Ich habe versucht:Einfügen von HTML in ein UIWebView

aber es funktioniert nicht ... Wissen Sie, ob es eine Lösung dafür gibt?

Danke,

Denis

Antwort

6

Das ist spät, aber nur für den Fall jemand anderer Blick auf diesem ursprüngliche Lösung funktioniert, müssen Sie nur noch zufällig

document.ExecCommand 

soll es

document.execCommand 

Ive sein getestet es mit das Kleinbuchstabe e und es funktioniert.

1

Sie HTML-Code in Ihre webview die loadHTMLString: Nachricht unter Verwendung laden können. Ich erwarte, dass du das nicht willst.

Nach dem Laden einiger HTML haben Sie zwei Möglichkeiten für die Kommunikation zwischen dem Javascript in Ihrem Webview und Sie objective-c-Code. 1 wird von Ziel-c initiiert und 2 wird von Javascript initiiert.

  1. können Sie führen ausführen Javascript mit der stringByEvaluatingJavaScriptFromString: Nachricht auf Ihrem UIWebView. Dies ist recht flexibel und kann sowohl zum Eingeben von Code als auch zum Aufrufen von vorhandenem Code verwendet werden. Z.B. Sie könnten [webView stringByEvaluatingJavascriptFromString:@"document.getElementById(\"editor\").innerHTML"] tun, um den Inhalt von einem Div mit ID-Editor zu bekommen.

  2. Durch die Implementierung der UIWebViewDelegate können Sie benachrichtigt werden, durch webView:shouldStartLoadWithRequest:navigationType: jedes Mal, wenn eine URL in der Webansicht geöffnet angefordert wird. Dies gibt Ihnen die Möglichkeit, Informationen aus der URL zu extrahieren und jedes weitere Laden abzubrechen, indem Sie NO zurückgeben. Z.B. In Ihrem Javascript könnten Sie document.location = "bold"; tun, wenn der Cursor über fettem Text geht. Dies würde Ihnen eine Chance geben, Ihre ui zu aktualisieren, um dies zu reflektieren.

+0

Dies ist die erste Option, die ich benutze, mit 'stringByEvaluatingJavaScriptFromString:', und es funktioniert perfekt, um die Auswahl fett oder kursiv zu machen. Ich wäre froh, nicht verpflichtet zu sein, loadHTMLString zu verwenden ... da ich die Auswahl verlieren würde und gezwungen wäre, einen Fund zu finden/ersetzen, ohne die Reichweite zu kennen ... – Denis

+0

Ich kann nicht wählen, da ich ein Neuling bin Website ... noch keine Lösung für dieses Problem gefunden ... NSText war eine großartige Lösung auf OSX, wahrscheinlich initiiert, um die MS Word-Herrschaft auf Macintosh zu senken. Auf iOS, kein Microsoft, keine Bemühungen von Apple ... das hilft dieser Firma, ihre "Pages" -Anwendung zu verkaufen, die definitiv keine Lösung für die meisten texthungrigen Menschen ist ... – Denis