addlistener

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

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

Синтаксис

el = addlistener (hSource, EventName, обратный вызов)
el = addlistener (hSource, PropertyName, EventName, обратный вызов)

Описание

el = addlistener(hSource,EventName,callback) создает прослушиватель для события EventName, когда включено исходный объект, hSource.

Если hSource является массивом, прослушиватель отвечает на именованное событие на любом объекте в массиве hSource. callback является указателем на функцию, ссылающимся на функцию обратного вызова.

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

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

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

PostSet

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

PreGet

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

PostGet

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

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

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

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

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

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

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

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

  • Скалярный объект meta.property

  • Массив объектов meta.property

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

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

Обратный вызов прослушивателя, заданный как указатель на функцию

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

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

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

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

Примеры

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

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

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

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

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

Советы

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

    delete(el)

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

  • Переопределение или очистка переменной, содержащей указатель прослушивателя (например, el), не удаляют прослушиватель. Объект-событие (hSource) все еще имеет ссылку на объект event.listener. addlistener связывает жизненный цикл прослушивателя с объектом, который является источником события.

  • Чтобы задать прослушиватель, который не связывается к объекту-событию, используйте конструктора event.listener непосредственно, чтобы создать прослушиватель.

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

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

Введенный в R2008a

Была ли эта тема полезной?