Main Content

uitextarea

텍스트 영역 컴포넌트 만들기

설명

txa = uitextarea는 새 Figure 창에 텍스트 영역을 만들고 TextArea 객체를 반환합니다. MATLAB®uifigure 함수를 호출하여 Figure를 만듭니다.

예제

txa = uitextarea(parent)는 지정된 부모 컨테이너에 텍스트 영역을 만듭니다. 부모 컨테이너는 uifigure 함수를 사용하여 만든 Figure 객체이거나 그 자식 컨테이너 중 하나일 수 있습니다.

예제

txa = uitextarea(___,Name,Value)는 하나 이상의 이름-값 인수를 사용하여 TextArea 속성을 지정합니다. 예를 들어, uitextarea("Value","Comments")Comments라는 텍스트를 표시하는 텍스트 영역을 생성합니다. 위에 열거된 구문에 나와 있는 입력 인수를 조합하여 이 옵션과 함께 사용하십시오.

예제

모두 축소

UI Figure 안에 텍스트 영역을 만듭니다.

fig = uifigure;
txa = uitextarea(fig);

UI Figure 안에 텍스트 영역을 만듭니다. 예상되는 입력값을 설명하는 자리 표시자 텍스트를 지정합니다. 자리 표시자 텍스트는 텍스트 영역이 비어 있는 경우에만 표시됩니다.

fig = uifigure;
txa = uitextarea(fig,"Placeholder","Enter feedback");

UI Figure 안에 채워진 텍스트 영역을 만듭니다.

fig = uifigure;
txa = uitextarea(fig, ...
    "Value",["First Name Last Name"; "Address 1"; ...
    "Address 2"; "City, State"; "Postal Code"]);

텍스트 영역에는 앱 사용자가 우편 번호를 볼 수 있도록 스크롤 막대가 포함되어 있습니다.

Position 속성의 세 번째 값과 네 번째 값을 쿼리하여 텍스트 영역의 현재 너비와 높이를 결정합니다.

size = txa.Position(3:4)
size = 1×2

   150    60

스크롤 막대를 사용하지 않고 모든 내용을 볼 수 있도록 텍스트 영역의 크기를 늘립니다.

txa.Position(3:4) = [155 80];

프로그래밍 방식으로 텍스트 영역의 아래쪽으로 스크롤합니다.

텍스트 영역을 만듭니다. 텍스트 영역의 크기와 긴 텍스트를 지정합니다.

fig = uifigure;
txa = uitextarea(fig);
txa.Position = [100 100 80 80];
txa.Value = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.";

Text area in a UI figure window. The text area is vertically scrollable.

텍스트 영역의 아래쪽으로 스크롤합니다.

scroll(txa,"bottom")

Text area in a UI figure window. The text area is scrolled to the bottom.

앱 사용자가 텍스트 영역에 텍스트를 입력하면 버튼이 활성화되는 앱을 만듭니다.

textAreaApp.m이라는 파일에 다음과 같이 앱을 구현하는 함수를 작성합니다.

  • UI Figure와 그리드 레이아웃 관리자를 만들어 앱의 레이아웃을 설정합니다.

  • 그리드 레이아웃 관리자에서 레이블, 텍스트 영역 및 버튼을 만듭니다.

  • 텍스트 영역에 텍스트가 있을 때 버튼을 활성화하는 textEntered라는 콜백 함수를 작성한 다음, 이 함수를 텍스트 영역의 ValueChangedFcn 콜백 속성에 할당합니다. 콜백에 대한 자세한 내용은 프로그래밍 방식으로 만든 앱에 대한 콜백 만들기 항목을 참조하십시오.

function textAreaApp
fig = uifigure;
g = uigridlayout(fig,[3 3]);
g.RowHeight = {'fit','fit','fit'};
g.ColumnWidth = {'1x','fit','1x'};

lbl = uilabel(g,"Text","Enter Comments:");
lbl.Layout.Row = 1;
lbl.Layout.Column = 2;
txa = uitextarea(g);
txa.Layout.Row = 2;
txa.Layout.Column = 2;
btn = uibutton(g,"Text","Submit","Enable","off");
btn.Layout.Row = 3;
btn.Layout.Column = 2;

txa.ValueChangedFcn = @(src,event) textEntered(src,event,btn);
end

function textEntered(src,event,btn)
val = src.Value;
btn.Enable = "off";
% Check each element of text area cell array for text
for k = 1:length(val)
    if ~isempty(val{k})
        btn.Enable = "on";
        break
    end
end
end

textAreaApp 함수를 실행합니다. 텍스트 영역에 텍스트를 입력한 다음 텍스트 영역 외부를 클릭하여 Submit 버튼을 활성화합니다.

Label, text area, and button in a UI figure window. At the top is a label with text "Enter Comments:". Below is a text area with text "Great app!". At the bottom is a Submit button.

입력 인수

모두 축소

부모 컨테이너로, uifigure 함수를 사용하여 만든 Figure 객체나 그 자식 컨테이너인 Tab, Panel, ButtonGroup, GridLayout 중 하나로 지정됩니다. 부모 컨테이너를 지정하지 않을 경우 MATLAB은 uifigure 함수를 호출하여 부모 컨테이너 역할을 하는 새 Figure 객체를 만듭니다.

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

예: uitextarea(Editable="off")는 앱 사용자가 텍스트 영역의 텍스트를 변경할 수 없도록 지정합니다.

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

예: uitextarea("Editable","off")는 앱 사용자가 텍스트 영역의 텍스트를 변경할 수 없도록 지정합니다.

참고

여기에 나와 있는 속성은 사용 가능한 속성의 일부에 불과합니다. 전체 목록을 보려면 TextArea 속성 항목을 참조하십시오.

값으로, 문자형 벡터, string형 스칼라, 문자형 벡터로 구성된 셀형 배열, string형 배열 또는 1차원 categorical형 배열로 지정됩니다. 여러 줄로 된 텍스트를 표시하려면 Value를 배열로 지정하십시오. 배열의 각 요소는 개별 텍스트 라인을 나타냅니다.

txt = ["Line 1"; "Line 2"; "Line 3"; "Line 4"];
textarea = uitextarea("Value",txt);

Text area with four lines of text labeled Line 1 through Line 4

이 속성을 categorical형 배열로 지정할 경우 MATLAB은 전체 범주 집합이 아닌 배열에 있는 값을 사용합니다.

텍스트가 텍스트 영역의 너비에 맞지 않으면 MATLAB은 텍스트를 줄 바꿈합니다.

텍스트 영역에 표시할 행이 너무 많으면 MATLAB은 스크롤 막대를 추가합니다.

예: ["Joseph Welford"; "Mary Reilly"; "Roberta Silberlicht"]

값 변경 콜백으로, 다음 값 중 하나로 지정됩니다.

  • 함수 핸들.

  • 첫 번째 요소가 함수 핸들인 셀형 배열. 이 셀형 배열의 그 다음 요소들은 콜백 함수로 전달할 인수입니다.

  • 유효한 MATLAB 표현식이 포함된 문자형 벡터(권장되지 않음). MATLAB은 이 표현식을 기본 작업 공간에서 실행합니다.

이 콜백은 사용자가 텍스트를 변경하고 Tab 키를 누르거나 텍스트 영역 바깥쪽을 클릭할 때 실행됩니다. Value 속성이 프로그래밍 방식으로 변경되는 경우에는 실행되지 않습니다.

이 콜백 함수는 사용자와 텍스트 영역의 상호 작용에 대한 특정 정보에 액세스할 수 있습니다. MATLAB은 이 정보를 콜백 함수에 대한 두 번째 인수로서 ValueChangedData 객체에 전달합니다. 앱 디자이너에서는 이 인수를 event라고 부릅니다. 점 표기법을 사용하여 객체 속성을 쿼리할 수 있습니다. 예를 들어, event.PreviousValue는 텍스트 영역의 이전 값을 반환합니다. ValueChangedData 객체는 문자형 벡터로 지정된 콜백 함수에 사용할 수 없습니다.

다음 표에는 ValueChangedData 객체의 속성 목록이 나열되어 있습니다.

속성
Value앱 사용자의 가장 최근 상호 작용 직후의 텍스트 영역 값
PreviousValue앱 사용자의 가장 최근 상호 작용 직전의 텍스트 영역 값
Source콜백을 실행하는 컴포넌트
EventName'ValueChanged'

콜백을 작성하는 방법에 대한 자세한 내용은 앱 디자이너에서 콜백 사용하기 항목을 참조하십시오.

값 변경 콜백으로, 다음 값 중 하나로 지정됩니다.

  • 함수 핸들.

  • 첫 번째 요소가 함수 핸들인 셀형 배열. 이 셀형 배열의 그 다음 요소들은 콜백 함수로 전달할 인수입니다.

  • 유효한 MATLAB 표현식이 포함된 문자형 벡터(권장되지 않음). MATLAB은 이 표현식을 기본 작업 공간에서 실행합니다.

이 콜백은 다음과 같이 실행됩니다.

  • 사용자가 텍스트 영역에 입력할 때 콜백이 반복적으로 실행됩니다.

  • 사용자가 Tab 키를 누르거나 텍스트 영역 바깥쪽을 클릭할 때 콜백이 실행됩니다.

텍스트 영역 값이 프로그래밍 방식으로 변경되는 경우에는 콜백이 실행되지 않습니다.

이 콜백 함수는 사용자와 텍스트 영역의 상호 작용에 대한 특정 정보에 액세스할 수 있습니다. MATLAB은 이 정보를 콜백 함수에 대한 두 번째 인수로서 ValueChangingData 객체에 전달합니다. 앱 디자이너에서는 이 인수를 event라고 부릅니다. 점 표기법을 사용하여 객체 속성을 쿼리할 수 있습니다. 예를 들어, event.Value는 콜백의 실행을 트리거한 텍스트 영역의 값입니다. ValueChangingData 객체는 문자형 벡터로 지정된 콜백 함수에 사용할 수 없습니다.

ValueChangingData 객체의 속성은 다음과 같습니다.

속성설명
Value콜백의 실행을 트리거한 값
Source콜백을 실행하는 컴포넌트
EventName'ValueChanging'

TextArea 객체의 Value 속성은 사용자가 Tab 키를 누르거나 텍스트 영역 바깥쪽을 클릭할 때까지 업데이트되지 않습니다. 그러나 ValueChangingData 객체의 Value 속성을 쿼리하여 사용자가 아직 입력하는 동안에도 텍스트를 가져올 수 있습니다.

참고

TextArea 객체의 Value 속성을 자체 ValueChangingFcn 콜백에서 업데이트하지 마십시오. 예상치 않은 동작이 발생할 수 있습니다. 사용자 입력에 대한 응답으로 텍스트 영역 값을 업데이트하려면 ValueChangedFcn 콜백을 대신 사용하십시오.

콜백을 작성하는 방법에 대한 자세한 내용은 앱 디자이너에서 콜백 사용하기 항목을 참조하십시오.

부모를 기준으로 한 텍스트 영역의 위치와 크기로, 벡터 [left bottom width height]로 지정됩니다. 다음 표에서는 벡터의 각 요소를 설명합니다.

요소설명
left부모 컨테이너의 왼쪽 내부 가장자리와 텍스트 영역의 왼쪽 외부 가장자리 사이의 거리
bottom부모 컨테이너의 내부 하단 가장자리와 텍스트 영역의 외부 하단 가장자리 사이의 거리
width텍스트 영역의 오른쪽과 왼쪽 외부 가장자리 사이의 거리
height텍스트 영역의 상단과 하단 외부 가장자리 사이의 거리

모든 측정값은 픽셀 단위입니다.

Position 값은 부모 컨테이너의 그리기 가능 영역을 기준으로 합니다. 그리기 가능 영역은 컨테이너의 경계 내부 영역이며 장식(예: 메뉴 모음, 제목)이 차지하는 영역은 포함되지 않습니다.

예: [100 100 100 90]

버전 내역

R2016a에 개발됨

모두 확장

참고 항목

함수

속성