2010-05-18 3 views
2

새로운 iPhone/iPad 개발 프로젝트를 시작하고 풍부한 스타일의 텍스트 (잠재적으로 포함 된 이미지 포함)가있는 문서를 표시해야합니다. 사용자는 문서를 터치하고 드래그하여 개별 단어 또는 여러 줄로 된 텍스트 범위를 강조 표시합니다. 텍스트가 강조 표시되면 상황에 맞는 메뉴가 나타나 강조 표시 색상을 변경하거나 여백 메모 (또는 기타 다양한 구조화 된 메타 데이터)를 추가 할 수 있습니다.iPhone 용 리치 문서 편집기 구현 방법

Word 문서에 주석을 추가하거나 PDF에 주석을 추가하는 것에 익숙하다면 이는 같은 종류의 일입니다. 그러나 제 경우에는 일반 사용자가 응용 프로그램에서 많은 시간을 보내서 수천 개 (경우에 따라 수만)의 작은 주석을 중앙 문서에 추가합니다. 메타 데이터의 모든 비트는 원격 웹 서비스와의 동기화를 기다리는 로컬에 저장됩니다.

개발자가 UIWebView 컨트롤을 만들고 HTML 문자열을 전달할 것을 제안하는 다른 조언을 읽었습니다. 그러나 그것은 특히 내가 포함시키고 자하는 모든 맥락 - 민감성과 함께, 어색한 것처럼 보인다.

어쨌든 저는 10 년간의 소프트웨어 개발 경험을 가지고 있지만 다양한 플랫폼에서 다양한 언어를 사용하고 있지만 아이폰 개발과 Objective-C에 새로운 것이므로 손이 더러워지는 것에 대해 걱정하지 않습니다. 처음부터 새로운 기능을 작성합니다.

그러나 비슷한 종류의 구성 요소를 구축 한 경험이있는 사용자는 풍부한 종류의 문서 마크 업과 주석을 사용하기위한 청력 전략에 관심이 있습니다.

답변

2

iPad에서는 Core Text을 이용할 수 있습니다.

아이폰에 대한 제안을 모릅니다. HTML이나 PDF를 렌더링하는 것 이상의 모든 iPhone 판독기 응용 프로그램에서 훌륭한 텍스트 처리를 발견하지 못했습니다. 나는 당신이 처음부터 무언가를 써야한다고 생각합니다.

1

아이폰 OS 3.2 이상을 사용하고자한다면, open source framework의 옴니 그룹 latest release을 살펴볼 수 있습니다. 여기에는 핵심 텍스트를 기반으로 한 샘플 리치 텍스트 편집기가 포함되어 있습니다.

2

설명하는 항목의 단순화 된 버전을 만들고 있습니다. 구현을 쉽게하기 위해 단락 단위로 제한 했으므로 길게 누르면 단락이 선택되고 단락 목록에 선택 항목이 팝업되어 단락에 적용됩니다.

저는 UIWebView에서 javascript로이 모든 작업을 수행하고 있습니다. 이것은 텍스트 편집기를하는 방법에 대한 나의 마지막 선택이었습니다. 나는 자바 스크립트로 남겨 두었을 정도로 하위 호환성 (CoreText가 없음)과 iTunes (개인 웹킷이 없음)를 통해 릴리스되어야했습니다.

당신은 아마 당신이 아주 clunky 방법을 사용하여 원하는 것을 얻을 수 있습니다. Javascript는 요소 수준에서 가장 잘 작동하므로 고유 한 ID가있는 범위에서 문서의 모든 단어를 래핑하려고합니다.

자바 스크립트는 터치 이벤트, 제스처 및 DOM 모델에 완전히 액세스 할 수 있습니다. 그것은 당신이 코코아면에서 얻는 것보다 UIWebView를 잘 제어합니다. 몇 가지 트릭을 사용하여 호스트 응용 프로그램과 양방향 통신 채널을 확보 할 수 있습니다. PhoneGap에는 이것의 좋은 구현이 있습니다.

다른 방법을 선택하는 경우 해당 옵션을 선택합니다. 내가 너처럼 갇혀 있다면, 이것보다 실용적인 선택이다.

+0

흥미 롭습니다. 얼마나 오래 (그리고 복잡한) 문서입니까? 몇 개의 특수 효과를 허용합니까? 성능에 미치는 영향은 무엇입니까? 모든 것이 자체 무게로 무너지기 전에 얼마나 많은 다른 ID를 DOM에 넣을 수 있을지 궁금합니다. – benjismith

+1

오, 또한 ... 당신은 "개인 웹킷"접근 방식을 취하지 못하게하는 iTunes 배포에 대해 언급했습니다. 어떤 종류의 앱 스토어 정책을 언급하고 있습니까? 나는 그것에 익숙하지 않다. 당신은 정교 할 수 있습니까? 감사! – benjismith