listener
클래스: handle
이벤트 소스에 바인딩하지 않고 이벤트 리스너 생성
구문
eL = listener(hSource,EventName,callback)
eL = listener(hSource,PropertyName,EventName,callback)
설명
은 이름이 eL
= listener(hSource
,EventName
,callback
)EventName
인 이벤트에 대한 리스너를 생성합니다. hSource
는 이벤트 소스인 핸들 객체입니다. callback
은 이벤트가 트리거될 때 MATLAB®이 호출하는 함수 핸들입니다.
hSource
가 이벤트 소스 객체로 구성된 배열인 경우, 리스너는 삭제 상태에 있지 않은 배열의 각 객체에 대한 명명된 이벤트에 응답합니다.
은 미리 정의된 속성 이벤트 중 하나에 대한 리스너를 생성합니다. 다음과 같이 4개의 미리 정의된 속성 이벤트가 있습니다.eL
= listener(hSource
,PropertyName
,EventName
,callback
)
이벤트 이름 | 이벤트 발생 시기 |
---|---|
PreSet | 속성값이 설정되기 직전, set 액세스 메서드를 호출하기 전에 발생함 |
PostSet | 속성값을 설정한 직후에 발생함 |
PreGet | 속성값 쿼리가 처리되기 직전, get 액세스 메서드를 호출하기 전에 발생함 |
PostGet | 쿼리에 속성값을 반환한 직후에 발생함 |
입력 인수
출력 인수
예제
팁
리스너 라이프사이클
리스너를 제거하려면 listener
에서 반환되는 리스너 객체를 삭제하십시오. 예를 들어, 아래 명령문은 핸들 클래스 delete
메서드를 호출하여 리스너를 제거합니다.
delete(el)
리스너 객체에 대해 삭제를 호출하면 리스너가 파괴되므로, 이벤트가 발생해도 더 이상 콜백 함수가 실행되지 않습니다.
listener
메서드는 리스너의 라이프사이클을 이벤트 소스인 객체로 바인딩하지 않습니다. 이벤트 소스 객체가 파괴돼도 리스너 객체의 라이프사이클에는 영향을 주지 않습니다.
소스 객체와 상관없이, listener
메서드로 생성한 리스너를 명시적으로 파괴해야 합니다. 리스너 변수에서 핸들 삭제 메서드를 호출하면(예: delete(el)
) 리스너가 명시적으로 파괴됩니다. 리스너를 포함하는 변수를 다시 정의하거나 지우면 리스너에 대한 다른 참조가 없을 경우 리스너가 삭제될 수 있습니다. 리스너의 라이프사이클을 이벤트 소스 객체의 라이프사이클에 바인딩하려면 addlistener
를 사용하십시오.
대안
MATLAB이 리스너 라이프사이클을 관리하도록 하려면 addlistener
를 사용하십시오.
버전 내역
R2017b에 개발됨