38.TextArea

38.1TextArea 소개

TextArea 컴포넌트는 텍스트 정보를 입력하는 수단 중 하나입니다. Edit 컴포넌트는 1줄로 된 짧은 항목을 입력하는 용도로 사용한다면 TextArea 컴포넌트는 1줄 이상의 문장 형태의 정보를 입력합니다. 이메일을 작성할 때 제목 입력은 Edit 컴포넌트를 사용하고 본문은 TextArea 컴포넌트를 사용해 입력할 수 있습니다.

위의 예에서 이메일 본문 작성 시 TextArea 컴포넌트를 사용한다고 했지만, 보통은

WYSIWYG HTML Editor 또는 Rich Text Editor라는 별도 모듈을 사용합니다. TextArea 컴포넌트는 1줄 이상의 텍스트 입력 기능만 제공하고 입력된 문장을 꾸미는 기능은 지원하지 않습니다.

38.1.1사용 예

웹에서 가장 흔하게 볼 수 있는 것이 댓글 입력창입니다. PC나 모바일 기기에서 짧은 의견을 남기는 기능을 제공합니다.

38.1.2TextArea 만들기

1

TextArea 컴포넌트 생성하기

툴바에서 TextArea를 선택한 후, Form 위에 드래그 앤 드롭해 생성합니다.

2

QuickView로 확인하기

QuickView(Ctrl + F6)로 실행합니다. 1줄 이상의 텍스트가 입력되는지 확인해봅니다.

38.2자동줄넘김(wordwrap) 기능

TextArea 컴포넌트를 아무 설정 없이 화면에 배치한 경우에는 텍스트를 입력했을 때 엔터키를 입력하지 않으면 가로 스크롤바가 생기면서 한 줄로 입력됩니다. 윈도우 운영체제에 설치된 메모장 앱도 자동줄넘김 설정을 하지 않으면 한 줄로 텍스트가 입력됩니다.

38.2.1예제

최초 실행 시에는 wordwrap 속성을 적용하지 않고 TextArea 컴포넌트 오른쪽에 있는 Radio 컴포넌트 선택 시 해당 속성을 적용합니다.

sample_textarea_01.xfdl

38.2.2예제에서 사용한 핵심 기능

wordwrap

컴포넌트의 영역을 벗어나는 입력값을 줄바꿈해서 보여줄지 지정하는 속성입니다. 'none', 'char', 'english' 속성 중 하나를 선택할 수 있습니다. 'english'를 선택하면 단어 단위로 줄바꿈을 처리하고 'char'를 선택하면 단어 단위와 상관없이 길이에 따라 줄바꿈을 처리합니다.

CJK(Chinese/Japanese/Korean) 문자는 'english', 'char' 속성값 선택에 따른 차이가 없습니다(아예 차이가 없는 것은 아닙니다. 공백 문자 처리 방식이 다르므로 'english' 속성값을 선택하는 것이 깔끔해 보일 수 있습니다).

각 속성값은 HTML5 Element에서 아래와 같이 처리됩니다 (CSS3, HTML5를 지원하는 브라우저인 경우).

HTML5 Element

none

char

english

white-space

pre

pre-wrap

pre-wrap

overflow-wrap

normal

break-word

break-word

word-break

-

break-all

-

wrap

hard

hard

hard

웹브라우저와 속성 조합 조건에 따라 처리 방식은 조금씩 달라질 수 있습니다. 예를 들어 IE 브라우저에서는 -ms-word-break, -ms-word-wrap 속성으로 처리될 수 있습니다.

https://developer.mozilla.org/ko/docs/Web/CSS/white-space

https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-wrap

https://developer.mozilla.org/en-US/docs/Web/CSS/word-break

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea


wrap 속성은 TextArea 컴포넌트에만 해당하는 처리방식입니다.

38.2.3예제 구현 방법

1

화면 구성하기

TextArea, Radio 컴포넌트를 예제 화면과 같이 배치합니다. Radio 컴포넌트의 innerdataset 속성값은 아래와 같이 지정합니다. TextArea 컴포넌트의 value 속성값은 원하는 텍스트를 입력합니다. 예제에서는 Lorem ipsum 텍스트를 사용했습니다.

value 속성값을 미리 설정하지 않고 예제 실행 후 직접 문자열을 입력해 테스트할 수도 있습니다.

2

Radio 컴포넌트 이벤트 함수 작성하기

Radio 컴포넌트를 선택한 후 onitemchanged 이벤트 함수를 작성합니다. Radio 컴포넌트에서 항목 선택 시 TextArea 컴포넌트의 wordWrap 속성값으로 지정합니다.

this.radioWordwrap_onitemchanged = function(obj:nexacro.Radio,e:nexacro.ItemChangeEventInfo)
{
    this.textareaWordwarp.set_wordWrap(this.radioWordwrap.value);
};

3

QuickView로 확인하기

QuickView(Ctrl + F6)로 실행한 후 속성값을 변경하면서 확인해봅니다. 다른 텍스트값을 TextArea 컴포넌트에 입력하고 테스트해볼 수도 있습니다.