2012-07-02 5 views
1

내 코코아 응용 프로그램에서 사용자가 Alt + Enter를 눌러 줄 바꿈을 삽입해야하는 텍스트 필드가 있습니다. 그건 괜찮아요 ... NSString으로 값을 얻고 NSLog를 할 때 실제로 새로운 줄이 인쇄 된 것을 볼 수 있습니다. 그러나 appendString과 함께 HTML 페이지의 일부로 문자열을 추가하고 loadHTMLString을 사용하면 새 줄이 결과 웹 페이지에서 완전히 무시됩니다. ...Alt + Enter, NSString에서 줄 바꿈을 검색하는 방법?

나에게 제안이나 설명서 링크를 제공해 줄 수 있습니까? 독서? 나는 정말로 모른다!

감사합니다.

+2

NSString이 아닌 웹 페이지에 문제가있는 것 같습니다. – mydogisbox

답변

1

일반 개행 문자는 브라우저에서 렌더링되지 않습니다.
개행 문자 (\n)를 줄 바꿈 태그 (<br>)로 바꿉니다.

NSString *newString = [oldString stringByReplacingOccurancesOfString:@"\n" withString:@"<br>"] 

<br> 태그는 웹 페이지에서 줄 바꿈 문자로 표시됩니다.

0

문자열에있는 새로운 줄이 글자 그대로 HTML 문서 원본에 삽입된다는 것이 문제입니다. html 문서가 렌더링 될 때 html 소스의 개행 문자가 문자 그대로 렌더링되지 않습니다. (HTML 태그를 구분하는 모든 새로운 줄 문자로 인해 많은 새로운 행이 표시 될 것이라고 상상해보십시오.)

대신 HTML 원본을 생성하기 위해 사용자가 입력 한 원시 텍스트를 처리해야합니다. 사용자가 입력 한 것으로 렌더링합니다. 따라서 텍스트를 단락으로 나눈 다음 적절한 <p></p> 태그를 삽입해야합니다.

enumerateSubstringsInRange:options:usingBlock:의 NSString 메서드를 NSStringEnumerationByParagraphs과 함께 사용할 수 있습니다. 각 단락을 처리합니다.

또한 사용자가 입력 한 데이터를 삭제해야합니다. 예를 들어 사용자가 일부 html 태그를 입력하면 페이지가 엉망이되는 것을 원하지 않습니다. 데이터를 산생 성화하는 것은 텍스트의 모든 제한된 문자를 적절한 html 엔티티로 바꾸는 것만 큼 간단 할 수도 있지만 실제로 수행하는 작업에 따라 다릅니다.

관련 문제