Create event listener bound to event source
el = addlistener(hSource,EventName,callback)
el = addlistener(hSource,PropertyName,EventName,callback)
hSource is an array, the listener responds to the named event on any object in the
callback is a function handle referencing the callback function.
addlistener(___) creates a listener object without a
handle. You can use this syntax with any of the previous input syntaxes.
|Event Name||Event Occurs|
Immediately before the property value is set, before calling its set access method
Immediately after the property value is set
Immediately before a property value query is serviced, before calling its get access method
Immediately after returning the property value to the query
hSource — Event source
Event source is the object that is source of the event, or an array of source objects, specified as a handle array.
EventName — Name of event
character vector | string scalar
Name of event that is triggered on the source objects, specified as case-sensitive, quoted text. For property events, the event name is one of the four predefined property events.
PropertyName — Name of property
character vector or
Name of the property whose property event triggers your listener, specified as one of these values:
A character vector or a cell array of character vectors, where each character vector is the name of a property defined for the objects in
An array of
You can attach listeners to property events on dynamic properties only when
hSource is scalar. If
hSource is non-scalar, then the properties must belong to the class of
hSource and cannot include dynamic properties (which are not part of the class definition).
The class defining the source property must set the
SetObservable property attributes to enable you to listen to the property events.
callback — Listener callback
Listener callback specified as a function handle
el — Listener object
Listener object created by
addlistener, specified as the handle to an
listener or an
Create a property listener for the
Color property of a graphics
fig = figure; propListener = addlistener(fig,'Color','PostSet',@(src,evnt)disp('Color changed'));
Set the value of the
Color property to
yellow. Setting the property triggers the
PostSet property event on the figure. The event source object is the specific figure referenced by the handle
Redefining or clearing the variable containing the handle of the listener (for example,
el) does not delete the listener. The event object (
hSource) still has a reference to the
addlistenerties the listener's lifecycle to the object that is the source of the event.
Although the listener is bound to the lifecycle of the event source, the listener continues to exist after the event source is destroyed when:
One or more references to the listener are in other variables, including the handle of the listener if one was specified at creation.
The listener is tied to other event sources.
To remove a listener, delete the listener object returned by
addlistener. For example,
calls the handle class delete method to delete the object from the workspace and remove the listener.
To define a listener that is not tied to the event object, use the
event.listenerconstructor directly to create the listener.
When you need the lifecycle of the listener object to be independent of the source object lifecycle, use
listener to create listeners.