addlistener

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

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

Синтаксис

el = addlistener(hSource,EventName,callback)
el = addlistener(hSource,PropertyName,EventName,callback)
addlistener(___)

Описание

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

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

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

addlistener(___) создает объект прослушивателя без указателя. Можно использовать этот синтаксис с любым из предыдущих входных синтаксисов.

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

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

PostSet

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

PreGet

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

PostGet

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Объект прослушивателя создается addlistenerВ виде указателя на 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')

Советы

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

  • Несмотря на то, что прослушиватель связан с жизненным циклом источника события, прослушиватель продолжает существовать после того, как источник события уничтожается когда:

    • Одна или несколько ссылок на прослушиватель находятся в других переменных, включая указатель прослушивателя, если вы были заданы при создании.

    • Прослушиватель связывается к другим источникам события.

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

    delete(el)

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

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

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

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

Введенный в R2008a