event.listener 클래스
네임스페이스: event
리스너(Listener) 객체를 정의하는 클래스
설명
event.listener
클래스는 리스너 객체를 정의합니다. 리스너 객체는 이벤트가 트리거될 때 콜백 함수를 실행하여 특정 이벤트에 응답합니다. event.listener
클래스를 사용하여 리스너 객체를 생성할 수 있습니다. 핸들 addlistener
와 listener
메서드를 사용하여 리스너를 생성할 수도 있습니다.
핸들 notify
메서드를 사용하여 이벤트를 트리거합니다.
event.listener
클래스는 handle
클래스입니다.
생성
설명
eListener = event.listener(
은 지정된 소스 객체에서 지정된 이벤트 이름에 대한 리스너를 생성하고 콜백 함수에 대한 함수 핸들을 식별합니다.eventSource
,eventName
,callbackFcn
)
eventSource
가 객체 핸들의 배열인 경우 리스너는 배열에 들어 있는 모든 객체에서, 명명된 이벤트에 응답합니다.
입력 인수
eventSource
— 이벤트 소스
핸들 객체 | 핸들 객체로 구성된 셀형 배열
이벤트 소스로, 핸들 객체 배열 또는 객체 핸들로 구성된 셀형 배열로 지정됩니다. 소스 객체의 클래스가 달라서 배열을 형성할 수 없을 때 셀형 배열을 사용합니다. 모든 소스 객체는 지정된 이벤트를 정의해야 합니다.
eventName
— 이벤트 이름
문자형 벡터 | string형 스칼라
이벤트 이름으로, 이벤트의 리터럴 이름으로 지정됩니다.
callbackFcn
— 콜백 함수
함수 핸들
콜백 함수로, 함수 핸들로 지정됩니다. 자세한 내용은 리스너 콜백 구문 항목을 참조하십시오.
속성
Source
— 이벤트 소스 객체
핸들 객체 배열 또는 핸들 객체로 구성된 셀형 배열
이벤트 소스 객체로, 이벤트가 트리거될 때 이 리스너가 응답하는 객체의 핸들로 지정됩니다.
특성:
GetAccess | public |
SetAccess | public |
GetObservable | true |
SetObservable | true |
데이터형: handle object
| cell array
EventName
— 이벤트 이름
문자형 벡터 | string형 스칼라
지정된 소스 객체에서 트리거될 때 리스너가 응답하는 이벤트의 이름입니다.
특성:
GetAccess | public |
SetAccess | public |
GetObservable | true |
SetObservable | true |
데이터형: char
| string
Callback
— 이벤트 콜백
함수 핸들
이벤트 콜백으로, 함수 핸들로 지정됩니다. 이 함수는 이벤트가 트리거될 때 실행됩니다.
특성:
GetAccess | public |
SetAccess | public |
GetObservable | true |
SetObservable | true |
데이터형: function_handle
Enabled
— 리스너 활성화 또는 비활성화
true (디폴트 값) | false
콜백은 Enabled
가 true
(디폴트 값)로 설정된 경우에만 이벤트 발생 시 실행됩니다. 이 리스너에 대한 콜백 실행을 비활성화하려면 Enabled
를 false
로 설정하십시오.
특성:
GetAccess | public |
SetAccess | public |
GetObservable | true |
SetObservable | true |
데이터형: logical
Recursive
— 콜백을 재귀적으로 실행
false (디폴트 값) | true
false
(디폴트 값)이면 리스너는 콜백을 재귀적으로 실행하지 않습니다. 따라서 콜백이 자체 이벤트를 트리거하는 경우 리스너는 다시 응답하지 않습니다.
true
인 경우 리스너 콜백은 콜백을 트리거한 것과 동일한 이벤트를 발생시킬 수 있습니다. 이 방법은 무한 재귀로 이어질 수 있으며, MATLAB® 재귀 제한에서 오류가 발생하면 이 무한 재귀는 종료됩니다.
특성:
GetAccess | public |
SetAccess | public |
GetObservable | true |
SetObservable | true |
데이터형: logical
예제
리스너 정의하기
EOL
이라는 이름의 이벤트에 대한 리스너를 정의합니다. 리스너는 배열 textReader
에 들어 있는 객체에서 트리거되는 EOLCallback
이라는 이름의 콜백 함수를 갖습니다.
listenerHandle = event.listener(textReader,"EOL",@EOLCallback);
세부 정보
리스너 콜백 시그니처
리스너 콜백 함수는 2개 이상의 입력 인수를 받아야 합니다.
function CallbackFunction(source,eventData) ... end
source
는 이벤트의 소스인 객체입니다.eventData
는event.EventData
객체 또는event.EventData
의 서브클래스의 인스턴스입니다.
리스너 콜백에 대한 자세한 내용은 리스너 콜백 구문, Callback Execution 및 Define Custom Event Data 항목을 참조하십시오.
리스너 라이프사이클 제한
event.listener
클래스 생성자를 사용하거나 핸들 클래스 addlistener
또는 listener
메서드를 사용하여 리스너 객체를 만들 수 있습니다.
addlistener
를 사용하여 리스너를 만드는 경우 이벤트 소스 객체는 리스너에 대한 참조 상태를 유지합니다. 소스가 소멸되면 MATLAB에서 리스너도 삭제됩니다. 리스너 라이프사이클을 관리하기 위해 리스너 객체에 대한 참조 상태를 저장할 필요는 없습니다.
event.listener
또는 listener
메서드를 사용하여 리스너를 만드는 경우 리스너의 라이프사이클이 이벤트 소스에 연결되지 않습니다. 이벤트 소스 객체가 리스너에 대한 참조 상태를 유지하지 않으므로 리스너 라이프사이클을 더 세부적으로 제어할 수 있습니다. 그러나 리스너 객체가 범위를 벗어나면 리스너는 더 이상 존재하지 않습니다.
리스너 라이프사이클에 대한 자세한 내용은 리스너 라이프사이클 항목을 참조하십시오.
리스너 제거
리스너 객체에 대해 delete(lh)
를 호출하면 리스너는 더 이상 존재하지 않게 되며 이벤트는 더 이상 리스너 콜백 함수를 실행시키지 않습니다.
리스너 비활성화
리스너의 Enabled
속성값을 설정하여 리스너를 활성화하거나 비활성화할 수 있습니다.
버전 내역
R2008a에 개발됨
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)