2012-03-24 4 views
0

UITextView가 풍부하지 않기 때문에 내용 편집 가능한 UIWebView를 사용하여 서식있는 텍스트 편집기를 만들려고합니다. 프로그래밍 방식으로 선택 영역을 바꾸거나 HTML 코드를 삽입하는 방법 (예 : 선택한 텍스트에 대한 링크를 만들거나 검색/바꾸기 기능을 구현하는 방법)이 궁금합니다. 나는 시도했다 :UIWebView에 HTML 삽입하기

[self.webTexteView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.ExecCommand('insertHTML', false, '%@')", myString]]; 

그러나 나는 그것을 해결할 수 없다.

감사합니다,

데니스

답변

6

이 늦게이지만, 다른 단지 넣다 사람이보고있다가 원래의 솔루션은 작동, 당신은 실수로

document.ExecCommand 

그것이

document.execCommand 

필자는 그것을 테스트해야해야 소문자 e와 그것이 작동합니다.

1

당신은 loadHTMLString: 메시지를 사용하여 웹보기로 HTML을로드 할 수 있습니다. 나는 그것이 당신이 원하는 것이 아니길 기대합니다.

일부 HTML을로드 한 후 webview의 javascript와 objective-c 코드 사이에서 통신하는 두 가지 옵션이 있습니다. 1은 objective-c에서 시작되고 2는 javascript에서 시작됩니다.

  1. 당신은 당신의 UIWebView에 stringByEvaluatingJavaScriptFromString: 메시지를 사용하여 자바 스크립트를 실행 실행할 수 있습니다. 이것은 매우 유연하며 코드를 삽입하고 기존 코드를 호출하는 데 사용할 수 있습니다. 예 : [webView stringByEvaluatingJavascriptFromString:@"document.getElementById(\"editor\").innerHTML"]을 사용하여 id 편집기로 div에서 콘텐츠를 가져올 수 있습니다.

  2. UIWebViewDelegate을 구현하면 urview가 webview에서 열리도록 요청할 때마다 webView:shouldStartLoadWithRequest:navigationType:을 통해 사용자에게 알릴 수 있습니다. 이렇게하면 URL에서 정보를 추출하고 NO을 반환하여 추가로드를 취소 할 수 있습니다. 예 : 당신이 자바 스크립트에서 document.location = "bold"; 할 때 커서가 굵게 텍스트를 전달할 수 있습니다. 이것은 당신에게 이것을 반영하기 위해 당신의 UI를 업데이트 할 수있는 기회를 줄 것입니다.

+0

이것은 'stringByEvaluatingJavaScriptFromString :'과 함께 내가 사용하는 첫 번째 옵션이며 완벽하게 선택을 굵게 또는 기울임 꼴로 만들 수 있습니다. 나는 loadHTMLString을 사용해야 할 의무가 없기 때문에 기뻐할 것입니다. 왜냐하면 선택을 잃어 버리고 범위를 알지 못하고 찾기/바꾸기를해야 할 것이기 때문입니다 ... – Denis

+0

나는 이것에 초보자이므로 투표 할 수 없습니다 웹 사이트 ... 여전히이 문제에 대한 해결책을 찾지 못했습니다 ... NSText는 Macintosh에서 MS Word 지배를 낮추기 위해 시작된 OSX에 대한 훌륭한 솔루션이었습니다. iOS에서 마이크로 소프트도 애플도 노력하지 않아 ...이 회사는 대부분의 텍스트가 굶주린 사람들을위한 솔루션이 아닌 "Pages"애플리케이션을 판매 할 수 있습니다. – Denis

관련 문제