listener

Класс: указатель

Создайте прослушиватель события, не связывая с источником события

Синтаксис

eL = listener(hSource,EventName,callback)
eL = listener(hSource,PropertyName,EventName,callback)

Описание

eL = listener(hSource,EventName,callback) создает прослушиватель для события под названием EventNamehSource объект указателя, который является источником события. callback указатель на функцию, который вызывает MATLAB®, когда событие инициировано.

Если hSource массив объектов источника события, прослушиватель отвечает на именованное событие на любом объекте в массиве, который не находится в удаленном состоянии.

eL = listener(hSource,PropertyName,EventName,callback) создает прослушиватель для одного из предопределенных событий свойства. Существует четыре предопределенных события свойства:

EventNameСобытие имеет место
PreSet

Сразу, прежде чем значение свойства установлено, прежде, чем вызвать его метод доступа набора

PostSet

Сразу после того, как значение свойства установлено

PreGet

Сразу, прежде чем запрос значения свойства обслуживается, прежде, чем вызвать получать метод доступа

PostGet

Сразу после возврата значения свойства к запросу

Входные параметры

развернуть все

Объект указателя, который является источником события в виде отдельного объекта или массива объектов.

Имя события, которое инициировано на исходных объектах в виде чувствительного к регистру, заключенного в кавычки текста. Для событий свойства имя события является одним из четырех предопределенных событий свойства.

Типы данных: char | string

Имя свойства, событие свойства которого инициировало прослушиватель в виде одного из этих значений:

  • Вектор символов или массив ячеек из символьных векторов, где каждый вектор символов является именем свойства, заданного для объектов в hSource

  • Скалярный meta.property возразите или массив meta.property соответствие объектов свойствам задано для объектов в hSource

Можно присоединить прослушиватели событий свойства динамических свойств только когда hSource isscalar. Если hSource является нескалярным, затем свойства должны принадлежать классу hSource и не может включать динамические свойства (которые не являются частью определения класса).

Класс, задающий исходное свойство, должен установить GetObservable и SetObservable атрибуты свойства, чтобы позволить вам слушать события свойства.

Коллбэк прослушивателя определил функцией указатель

Типы данных: function_handle

Выходные аргументы

развернуть все

Объект прослушивателя, возвращенный как указатель на event.listener или event.proplistener объект.

Примеры

развернуть все

Создайте прослушиватель свойства для Color свойство графики figure окно.

fig = figure;
propListener = listener(fig,'Color','PostSet',@(src,evnt)disp('Color changed'));

Установите значение Color свойство к yellow. Установка свойства инициировала PostSet событие свойства на фигуре. Объект источника события является определенной фигурой, на которую ссылается указатель fig.

set(fig,'Color','yellow')

Удалите объект прослушивателя.

delete(propListener)

Советы

Жизненный цикл прослушивателя

Чтобы демонтировать прослушиватель, удалите объект прослушивателя, возвращенный listener. Например, этот оператор вызывает класс Handle delete метод, чтобы демонтировать прослушиватель.

delete(el)

Вызов удаляет на объекте прослушивателя, уничтожает прослушиватель и, поэтому, событие больше не заставляет функцию обратного вызова выполняться.

listener метод не связывает жизненный цикл прослушивателя с объектом, который является источником события. Уничтожение объекта источника события не влияет на жизненный цикл объекта прослушивателя.

Необходимо явным образом уничтожить прослушиватели, созданные с listener метод независимо от исходного объекта. Вызов указателя удаляет метод на переменной прослушивателя (например, delete(el)) явным образом уничтожает прослушиватель. Переопределение или очищение переменной, содержащей прослушиватель, могут удалить прослушиватель, при отсутствии других ссылок на него. Чтобы связать жизненный цикл прослушивателя жизненного цикла объекта источника события, используйте addlistener.

Альтернативы

Используйте addlistener когда это необходимо, MATLABto управляют жизненным циклом прослушивателя.

Введенный в R2017b