이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

Menu 속성

메뉴의 모양 및 동작 제어

메뉴는 앱 창의 상단에 있는 드롭다운 옵션 목록을 표시합니다. uimenu 함수를 호출하여 메뉴를 만들거나 기존 메뉴에 하위 메뉴를 추가합니다. 속성은 메뉴의 모양과 동작을 제어합니다. 다음과 같이 점 표기법을 사용하여 특정 객체와 속성을 참조하십시오.

uf = uifigure;
m = uimenu(uf);
m.Text = 'Open Selection';

여기에 나열된 속성은 앱 디자이너의 메뉴나 uifigure 함수로 만든 앱에서 유효합니다. GUIDE에 사용된 메뉴나 figure 함수로 만든 앱에 대해서는 Menu Properties를 참조하십시오.

메뉴

모두 확장

메뉴 레이블로, 문자형 벡터 또는 string형 스칼라로 지정됩니다. 이 속성은 메뉴 또는 메뉴 항목에 나타나는 레이블을 지정합니다.

대소문자를 구분하는 다음의 예약어 "default", "remove", "factory"는 사용하지 마십시오. 예약어를 꼭 사용해야 하면 해당 단어 앞에 백슬래시 문자를 지정하십시오. 예를 들어, "default"는 '\default'로 지정합니다.

레이블 텍스트에 앰퍼샌드(&) 문자를 사용하여 니모닉 바로 가기 키(Alt+mnemonic)를 지정할 수 있습니다. 앰퍼샌드 뒤에 오는 문자는 Alt를 눌렀을 때 메뉴에서 밑줄이 그어져 나타납니다. Alt 키를 누른 채로 표시된 문자를 눌러 메뉴 항목을 선택할 수 있습니다.

니모닉 키를 사용하려면 앱에서 정의하는 모든 메뉴와 메뉴 항목에 대한 니모닉 키를 지정해야 합니다. 일부 메뉴 또는 메뉴 항목에 대한 니모닉 키만 정의하는 경우 Alt 키를 눌러도 아무런 효과가 없습니다.

다음 표에서 몇 가지 예를 볼 수 있습니다.

텍스트 값니모닉 힌트가 있는 메뉴 레이블
'&Open Selection'

'O&pen Selection'

'&Save && Go'

바로 가기 키로, 문자로 지정됩니다. 이 속성을 사용하여 메뉴 항목을 선택하는 바로 가기 키를 정의할 수 있습니다.

예: mitem.Accelerator = 'H'

액셀러레이터 값을 지정하면 사용자는 마우스를 사용하는 대신, 문자와 또 하나의 키를 눌러 메뉴 항목을 선택할 수 있습니다. 키 시퀀스는 플랫폼별로 다릅니다.

  • Windows® 시스템: Ctrl+accelerator

  • Macintosh 시스템: Command+accelerator

  • Linux® 시스템: Ctrl+accelerator

액셀러레이터를 사용할 때 유의해야 할 점:

  • 단축 키 시퀀스를 입력할 때 앱 창에 초점이 맞춰져 있어야 합니다.

  • 최상위 수준 메뉴에는 액셀러레이터를 사용할 수 없습니다.

  • 액셀러레이터는 메뉴 항목이 다음 조건을 모두 충족할 때만 작동합니다.

    • 하위 메뉴 항목을 포함하지 않습니다.

    • 콜백 함수를 실행합니다.

    • Visible 속성이 'on'으로 설정되었습니다.

구분선 모드로, 'off' 또는 'on'으로 지정됩니다. 이 속성을 'on'으로 설정하면 메뉴 항목 위에 분할선이 그려집니다.

참고

메뉴 항목이 최상위 메뉴 항목일 때는 Separator 속성은 무시됩니다.

메뉴 확인 표시자로, 'off'또는'on'으로 지정됩니다. 이 속성을 'on'으로 설정하면 대응하는 메뉴 항목 옆에 확인 표시가 삽입됩니다. 이 속성을 'off'로 설정하면 확인 표시가 제거됩니다. 이 기능을 사용하여 응용 프로그램에서 기능을 활성화하거나 비활성화하는 메뉴 항목의 상태를 나타낼 수 있습니다.

참고

메뉴 항목이 다음 조건일 때는 Checked 속성은 무시됩니다.

  • 최상위 메뉴 항목

  • 하나 이상의 하위 메뉴 항목이 들어 있는 메뉴 항목

메뉴 레이블 색으로, RGB 3색, 16진수 색 코드 또는 표에 나열된 색 옵션 중 하나로 지정됩니다.

RGB 3색과 16진수 색 코드는 사용자 지정 색을 지정할 때 유용합니다.

  • RGB 3색은 요소를 3개 가진 행 벡터로, 각 요소는 색을 구성하는 빨간색, 녹색, 파란색의 농도를 지정합니다. 농도의 범위는 [0,1]이어야 합니다(예: [0.4 0.6 0.7]).

  • 16진수 색 코드는 문자형 벡터 또는 string형 스칼라로, 해시 기호(#)로 시작하고 그 뒤에 3자리 또는 6자리의 16진수 숫자(0에서 F 사이일 수 있음)가 옵니다. 이 값은 대/소문자를 구분하지 않습니다. 따라서 색 코드 '#FF8800', '#ff8800', '#F80''#f80'은 모두 동일합니다.

몇몇의 흔한 색은 이름으로 지정할 수도 있습니다. 다음 표에는 명명된 색 옵션과 그에 해당하는 RGB 3색 및 16진수 색 코드가 나와 있습니다.

색 이름짧은 이름RGB 3색16진수 색 코드모양
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

다음은 MATLAB®이 여러 유형의 플롯에서 사용하는 디폴트 색의 RGB 3색과 16진수 색 코드입니다.

RGB 3색16진수 색 코드모양
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

상호 작용

모두 확장

메뉴 가시성으로, 'on' 또는 'off'로 지정됩니다. Visible 속성이 'off'로 설정된 경우 메뉴는 표시되지 않지만 메뉴의 속성을 쿼리하고 설정할 수 있습니다.

메뉴의 작동 상태로, 'on' 또는 'off'로 지정됩니다. 이 속성은 사용자가 메뉴 항목을 선택할 수 있는지 여부를 제어합니다. 값이 'off'인 경우, 메뉴 레이블은 흐리게 나타나 사용자가 메뉴 항목을 선택할 수 없음을 나타냅니다.

툴팁으로, 문자형 벡터, 문자형 벡터로 구성된 셀형 배열, string형 배열 또는 1차원 categorical형 배열로 지정됩니다. 사용자가 런타임에 구성요소 위에 포인터를 올려놓을 때 메시지가 표시되도록 하려면 이 속성을 사용합니다. 툴팁은 구성요소가 비활성화된 경우에도 표시됩니다. 텍스트를 여러 라인으로 표시하려면 문자형 벡터로 구성된 셀형 배열 또는 string형 배열을 지정하십시오. 배열의 각 요소가 별도의 텍스트 라인이 됩니다. 이 속성을 categorical형 배열로 지정할 경우 MATLAB은 전체 범주 집합이 아닌 배열에 있는 값을 사용합니다.

콜백

모두 확장

선택된 메뉴 콜백으로, 다음 값 중 하나로 지정됩니다.

  • 함수 핸들.

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

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

콜백은 메뉴 항목의 위치와 상호 작용의 유형에 따라 응답합니다.

  • 메뉴를 마우스 왼쪽 버튼으로 클릭하면 메뉴가 확장되고 콜백을 트리거합니다.

  • 메뉴가 확장되어 있는 동안 다른 상위 메뉴(또는 최상위 메뉴) 위에 마우스 포인터를 올려놓으면 메뉴가 확장되고 콜백을 트리거합니다.

참고

콜백을 사용하여 동적으로 메뉴 항목을 변경하지 마십시오. 콜백에서 메뉴 항목을 삭제, 추가 및 교체하면 빈 메뉴가 만들어질 수 있습니다. 대신, Visible 속성을 사용하여 메뉴 항목을 숨기거나 표시하십시오. 또한 Enable 속성을 설정하여 메뉴 항목을 활성화하고 비활성화할 수 있습니다. 메뉴 항목을 완전히 다시 채우려면 메뉴 항목을 삭제하고 콜백 밖에서 만드십시오.

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

객체 생성 함수로, 다음 값 중 하나로 지정됩니다.

  • 함수 핸들.

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

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

콜백을 함수 핸들, 셀형 배열 또는 문자형 벡터로 지정하는 방법에 대한 자세한 내용은 앱 디자이너에서 콜백 작성하기 항목을 참조하십시오.

이 속성은 MATLAB이 객체를 생성할 때 실행할 콜백 함수를 지정합니다. MATLAB은 CreateFcn 콜백을 실행하기 전에 모든 속성값을 초기화합니다. CreateFcn 속성을 지정하지 않으면 MATLAB은 디폴트 생성 함수를 실행합니다.

기존 구성요소에 대해서는 CreateFcn 속성을 설정해도 아무 효과가 없습니다.

이 속성을 함수 핸들 또는 셀형 배열로 지정하면 생성 중인 객체에 콜백 함수의 첫 번째 인수를 사용하여 액세스할 수 있습니다. 이 속성을 함수 핸들 또는 셀형 배열로 지정하지 않은 경우에는 gcbo 함수를 사용하여 객체에 액세스하십시오.

객체 삭제 함수로, 다음 값 중 하나로 지정됩니다.

  • 함수 핸들.

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

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

콜백을 함수 핸들, 셀형 배열 또는 문자형 벡터로 지정하는 방법에 대한 자세한 내용은 앱 디자이너에서 콜백 작성하기 항목을 참조하십시오.

이 속성은 MATLAB에서 객체를 삭제할 때 실행할 콜백 함수를 지정합니다. MATLAB은 객체의 속성을 파괴하기 전에 DeleteFcn 콜백을 실행합니다. DeleteFcn 속성을 지정하지 않으면 MATLAB은 디폴트 삭제 함수를 실행합니다.

이 속성을 함수 핸들 또는 셀형 배열로 지정하면 삭제 중인 객체에 콜백 함수의 첫 번째 인수를 사용하여 액세스할 수 있습니다. 이 속성을 함수 핸들 또는 셀형 배열로 지정하지 않은 경우에는 gcbo 함수를 사용하여 객체에 액세스하십시오.

콜백 실행 컨트롤

모두 확장

콜백 중단으로, 'on'이나 'off'로 지정됩니다. Interruptible 속성은 실행중 콜백을 중단할 수 있는지 여부를 지정합니다.

고려할 콜백 상태에는 다음 두 가지가 있습니다.

  • 실행중 콜백은 현재 실행되고 있는 콜백입니다.

  • 인터럽트 콜백은 실행중 콜백을 중단하고 자신이 실행되려는 콜백입니다.

MATLAB이 콜백을 불러올 때마다 불러들여진 콜백은 실행중 콜백(있는 경우)을 중단하려고 시도합니다. 실행중 콜백을 소유한 객체의 Interruptible 속성은 중단이 허용되는지 여부를 지정합니다. Interruptible 속성에는 다음 두 가지 값을 사용할 수 있습니다.

  • 'on' — 다른 콜백이 이 객체의 콜백을 중단할 수 있습니다. MATLAB이 대기열을 처리하는 다음 지점에서(예: drawnow, figure, uifigure, getframe, waitfor 또는 pause 명령이 있을 때) 중단이 발생합니다.

    • 실행중 콜백에 이러한 명령 중 하나가 포함되어 있으면 MATLAB은 이 지점에서 콜백 실행을 중지하고 인터럽트 콜백을 실행합니다. 인터럽트 콜백이 완료되면 MATLAB은 실행중 콜백의 실행을 재개합니다.

    • 실행중 콜백에 이러한 명령 중 하나가 포함되어 있지 않으면 MATLAB은 중단 없이 콜백 실행을 마칩니다.

  • 'off' — 모든 중단 시도를 차단합니다. 인터럽트 콜백을 소유한 객체의 BusyAction 속성은 인터럽트 콜백을 삭제할지 아니면 대기열에 넣을지를 지정합니다.

참고

콜백 중단과 실행은 다음 상황에서 다르게 동작합니다.

  • 인터럽트 콜백이 DeleteFcn, CloseRequestFcn, SizeChangedFcn 콜백 중 하나이면 Interruptible 속성값에 관계없이 중단이 발생합니다.

  • 실행중 콜백이 현재 waitfor 함수를 실행 중이면 Interruptible 속성값에 관계없이 중단이 발생합니다.

  • Timer 객체는 Interruptible 속성값에 관계없이 예약된 대로 실행됩니다.

중단이 발생하면 MATLAB은 디스플레이 또는 속성의 상태를 저장하지 않습니다. 예를 들어, 다른 콜백이 실행될 때 gca 또는 gcf 명령이 반환하는 객체가 변경될 수도 있습니다.

콜백 대기로, 'queue''cancel'로 지정됩니다. BusyAction 속성은 MATLAB이 인터럽트 콜백의 실행을 처리하는 방법을 지정합니다. 고려할 콜백 상태에는 다음 두 가지가 있습니다.

  • 실행중 콜백은 현재 실행되고 있는 콜백입니다.

  • 인터럽트 콜백은 실행중 콜백을 중단하고 자신이 실행되려는 콜백입니다.

MATLAB이 콜백을 불러올 때마다 콜백은 실행중 콜백을 중단하려고 시도합니다. 실행중 콜백을 소유한 객체의 Interruptible 속성은 중단이 허용되는지 여부를 지정합니다. 중단이 허용되지 않는 경우 인터럽트 콜백을 소유한 객체의 BusyAction 속성은 콜백을 삭제할지 아니면 대기열에 넣을지 여부를 지정합니다. BusyAction 속성의 가능한 값은 다음과 같습니다.

  • 'queue' — 실행중 콜백이 실행을 마치고 나면 인터럽트 콜백이 처리되도록 대기열에 넣습니다.

  • 'cancel' — 인터럽트 콜백을 실행하지 않습니다.

이 속성은 읽기 전용입니다.

삭제 상태로, 'off' 또는 'on'으로 반환됩니다. MATLAB은 DeleteFcn 콜백이 실행을 시작할 때 BeingDeleted 속성을 'on'으로 설정합니다. BeingDeleted 속성은 구성요소 객체가 더 이상 존재하지 않을 때까지 'on'으로 설정되어 유지됩니다.

객체를 쿼리하거나 수정하기 전에 BeingDeleted 속성의 값을 확인하여 이 객체가 곧 삭제될 것이 아님을 확인합니다.

상위(부모)/하위(자식)

모두 확장

상위(부모) 객체로, uifigure 함수를 사용하여 만든 FigureMenu 객체로 지정됩니다. 이 속성을 설정하여 메뉴 항목을 다른 창으로 이동하거나 다른 메뉴 아래로 이동할 수 있습니다.

메뉴의 하위(자식)로, 빈 GraphicsPlaceholderMenu 객체로 구성된 1차원 배열로 반환됩니다.

Children 속성을 사용해서는 하위(자식) 구성요소를 추가하거나 제거할 수 없습니다. 하위(자식)의 목록을 보거나 하위(자식) 메뉴 항목을 재정렬하려면 이 속성을 사용하십시오.

하위(자식) 메뉴를 이 목록에 추가하려면 다른 Menu 객체의 Parent 속성을 이 Menu 객체로 설정하십시오.

객체 핸들의 가시성으로, 'on', 'callback', 'off' 중 하나로 지정됩니다.

이 속성은 그 상위(부모)의 하위(자식) 목록에서 객체의 가시성을 제어합니다. 객체가 그 상위(부모)의 하위(자식) 목록에 표시되지 않는다면 객체 계층 구조를 검색하거나 핸들 속성을 쿼리하여 객체를 가져오는 함수는 객체를 반환하지 않습니다. 이러한 함수로는 get, findobj, clf, close가 있습니다. 객체는 표시되지 않아도 여전히 유효합니다. 객체에 액세스할 수 있으면 해당 속성을 설정하여 가져온 후 객체에 대해 작동하는 함수로 전달할 수 있습니다.

HandleVisibility 값설명
'on'객체는 항상 표시됩니다.
'callback'명령줄에서 호출한 함수 내에서가 아니라, 콜백 내에서나 콜백이 호출한 함수 내에서 객체가 표시됩니다. 이 옵션은 명령줄에서 객체에 액세스하는 것은 차단하지만, 콜백 함수가 이 객체 핸들에 액세스하는 것은 허용합니다.
'off'객체는 항상 표시되지 않습니다. 이 옵션은 다른 함수에 의해 UI가 의도치 않게 변경되는 것을 방지하는 데 유용합니다. HandleVisibility'off'로 설정하여 해당 함수를 실행하는 동안 객체를 일시적으로 숨길 수 있습니다.

식별자

모두 확장

이 속성은 읽기 전용입니다.

그래픽스 객체의 유형으로, 'uimenu'로 반환됩니다.

객체 식별자로, 문자형 벡터 또는 string형 스칼라로 지정됩니다. 객체의 식별자로 사용할 고유 Tag 값을 지정할 수 있습니다. 코드의 다른 곳에서 객체에 액세스해야 할 경우 findobj 함수를 사용하여 Tag 값을 기반으로 객체를 검색할 수 있습니다.

사용자 데이터로, 임의의 MATLAB 배열로 지정됩니다. 예를 들어, 스칼라, 벡터, 행렬, 셀형 배열, 문자형 배열, table형 또는 구조체형으로 지정할 수 있습니다. 이 속성을 사용하여 객체에 임의의 데이터를 저장할 수 있습니다.

앱 디자이너에서 작업하는 경우 앱에서 데이터를 공유할 수 있도록 UserData 속성을 사용하는 대신 퍼블릭 또는 프라이빗 속성을 생성하십시오. 자세한 내용은 앱 디자이너로 만든 앱 내부에서 데이터 공유하기 항목을 참조하십시오.

참고 항목

|

R2017b에 개발됨