Main Content

uieditfield

텍스트 또는 숫자 편집 필드 컴포넌트 만들기

설명

ef = uieditfield는 새 Figure에 텍스트 편집 필드를 만들고 EditField 객체를 반환합니다. MATLAB®uifigure 함수를 호출하여 Figure를 만듭니다.

예제

ef = uieditfield(parent)는 지정된 부모 컨테이너에 텍스트 편집 필드를 만듭니다. 부모 컨테이너는 uifigure 함수를 사용하여 만든 Figure이거나 그 자식 컨테이너 중 하나일 수 있습니다.

ef = uieditfield(style)은 지정된 스타일의 편집 필드를 만듭니다. 편집 필드 스타일은 "text" 또는 "numeric"일 수 있습니다.

예제

ef = uieditfield(parent,style)은 지정된 부모 컨테이너에 지정된 스타일의 편집 필드를 만듭니다.

예제

ef = uieditfield(___,Name,Value)는 하나 이상의 이름-값 인수로 지정된 속성이 있는 편집 필드를 만듭니다. 예를 들어, Value 속성을 사용하여 편집 필드 값을 지정합니다. 위에 열거된 구문에 나와 있는 입력 인수를 조합하여 이 옵션과 함께 사용하십시오.

예제

모두 축소

UI Figure 안에 텍스트 편집 필드를 만듭니다.

fig = uifigure;
ef = uieditfield(fig);

Figure contains an object of type uieditfield.

스타일을 "numeric"으로 지정하여 숫자 편집 필드를 만듭니다.

fig = uifigure;
ef = uieditfield(fig,"numeric");

Figure contains an object of type uinumericeditfield.

숫자 편집 필드를 만들고 제한이 0~100이 되도록 설정합니다.

fig = uifigure;
ef = uieditfield(fig,"numeric", ...
    "Limits",[0 100]);

Figure contains an object of type uinumericeditfield.

디폴트 값을 확인합니다.

val = ef.Value
val = 0

편집 필드의 값을 50으로 설정합니다.

ef.Value = 50;

Figure contains an object of type uinumericeditfield.

앱 사용자가 임의의 값을 입력하면 그 값을 항상 소수 두 자릿수와 지정된 단위를 사용하여 표시하는 숫자 편집 필드를 만듭니다. 편집 필드는 값을 앱 사용자가 입력한 것과 정확히 일치하는 값을 저장합니다.

fig = uifigure;
ef = uieditfield(fig,"numeric", ...
    "ValueDisplayFormat","%.2f Volts");

Figure contains an object of type uinumericeditfield.

숫자 편집 필드에 5.5556을 입력한 다음 필드 바깥쪽을 클릭합니다. 편집 필드에 5.56 Volts가 표시됩니다.

편집 필드는 사용자가 입력한 것과 정확히 일치하는 값(5.5556)을 Value 속성에 저장합니다. 편집 필드를 다시 클릭하면 5.5556이 표시됩니다.

지원되는 형식 표시 연산자의 전체 목록은 sprintf 항목을 참조하십시오.

앱 사용자가 -5보다 크고 10보다 작거나 같은 값을 입력할 수 있는 숫자 편집 필드를 만듭니다.

fig = uifigure;
ef = uieditfield(fig,"numeric", ...
    "Limits",[-5 10], ...
    "LowerLimitInclusive","off", ...
    "UpperLimitInclusive","on", ...
    "Value",5);

숫자 편집 필드에 제한을 벗어난 값을 입력하면 MATLAB은 문제를 나타내는 메시지를 표시합니다. 유효하지 않은 값을 입력하면 MATLAB이 해당 값을 이전의 유효한 값으로 되돌립니다.

Text edit field. The value in the field is -10, and the edit field has a red border and an error tooltip with text "Value must be between -5 and 10"

앱 사용자가 문자와 숫자로만 구성된 3자~12자 길이의 텍스트를 입력할 수 있는 텍스트 편집 필드를 만듭니다.

fig = uifigure;
ef = uieditfield(fig, ...
    "CharacterLimits",[3 12], ...
    "InputType","alphanumerics");

텍스트 편집 필드에 유효하지 않은 값을 입력하면 MATLAB은 문제를 나타내는 메시지를 표시합니다. 사용자가 Enter 키를 눌러서 이 유효하지 않은 값을 입력하거나, 해당 컴포넌트에서 벗어나면 MATLAB은 해당 값을 이전의 유효한 값으로 되돌립니다.

Text edit field. The text in the field is "ab", and the edit field has a red border and an error tooltip with text "Value must be between 3 and 12 characters long."

앱 사용자가 숫자 편집 필드에 값을 입력하면 계기판 바늘을 움직이는 앱을 만듭니다.

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

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

  • 그리드 레이아웃 관리자에서 숫자 편집 필드와 계기판을 만듭니다.

  • 편집 필드 값과 일치하도록 계기판 바늘을 업데이트하는 editFieldValueChanged라는 콜백 함수를 작성한 다음, 이 함수를 편집 필드의 ValueChangedFcn 콜백 속성에 할당합니다. 콜백에 대한 자세한 내용은 프로그래밍 방식으로 만든 앱에 대한 콜백 만들기 항목을 참조하십시오.

function editFieldApp
fig = uifigure;
gl = uigridlayout(fig);
gl.RowHeight = {'1x',150,'fit','1x'};
gl.ColumnWidth = {'1x',150,'1x'};

g = uigauge(gl,"Limits",[0 10]);
g.Layout.Row = 2;
g.Layout.Column = 2;

ef = uieditfield(gl,"numeric", ...
    "Limits",[0 10], ...
    "ValueChangedFcn",@(src,event) editFieldValueChanged(src,event,g));
ef.Layout.Row = 3;
ef.Layout.Column = 2;
end

function editFieldValueChanged(src,event,g)
g.Value = src.Value;
end

editFieldApp 함수를 실행합니다. 편집 필드에 값을 입력하여 계기판 바늘을 업데이트합니다.

editFieldApp

Figure contains an object of type uigridlayout.

앱 사용자가 텍스트 편집 필드에 입력한 값에 대한 로그를 유지하고 이 로그를 텍스트 영역에 표시하는 앱을 만듭니다.

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

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

  • 그리드 레이아웃 관리자에서 텍스트 편집 필드와 텍스트 영역을 만듭니다.

  • 사용자가 편집 필드에 새 텍스트를 입력할 때마다 이전에 입력된 텍스트를 텍스트 영역에 추가하는 editFieldValueChanged라는 콜백 함수를 작성한 다음, 이 함수를 편집 필드의 ValueChangedFcn 콜백 속성에 할당합니다. 콜백 이벤트 데이터를 사용하여 이전에 입력된 텍스트에 액세스합니다. 콜백에 대한 자세한 내용은 프로그래밍 방식으로 만든 앱에 대한 콜백 만들기 항목을 참조하십시오.

function logEntriesApp
fig = uifigure;
g = uigridlayout(fig);
g.RowHeight = {'fit','1x'};
g.ColumnWidth = {'1x',150,'1x'};

loglist = uitextarea(g, ...    
    "Editable","off");
loglist.Layout.Row = 2;
loglist.Layout.Column = 2;

ef = uieditfield(g, ...
  "Value","Daniela Hendrix",...
  "ValueChangedFcn",@(src,event) editFieldValueChanged(src,event,loglist));
ef.Layout.Row = 1;
ef.Layout.Column = 2;
end

% Create ValueChangedFcn callback
function editFieldValueChanged(src,event,loglist)
prev = event.PreviousValue;
loglist.Value = [prev; loglist.Value];
end

logEntriesApp 함수를 실행합니다. 편집 필드에 이름을 입력합니다. 새 이름을 입력할 때마다 앱이 이전 이름을 텍스트 영역에 표시되는 로그에 추가합니다.

App with an edit field and a text area. The edit field contains a name, and the text area has a list of multiple names.

입력 인수

모두 축소

편집 필드의 유형으로, 다음 중 하나로 지정됩니다.

  • "text" — 앱 사용자가 편집 필드에 임의의 텍스트를 입력할 수 있습니다. 기본적으로 텍스트 편집 필드는 비어 있습니다.

  • "numeric" — 앱 사용자가 편집 필드에 숫자형 값만 입력할 수 있습니다. 사용자가 숫자가 아닌 값을 입력하려고 시도하면 MATLAB은 오류 툴팁을 표시하고 값을 이전의 유효한 값으로 되돌립니다. 기본적으로 숫자 편집 필드에는 값 0이 표시됩니다.

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

이름-값 인수

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

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

EditFieldNumericEditField 객체는 서로 다른 속성 세트를 지원합니다. 전체 속성 목록과 각 객체에 대한 설명을 보려면 관련 속성 페이지를 참조하십시오.

버전 내역

R2016a에 개발됨

모두 확장