notify
Dispara um evento de um objeto handle e executa os listeners ligados a ele.
Categoria: Programming > Classes
Sintaxe
notify(obj, 'EventName')
Dispara o evento e chama cada listener habilitado com o objeto de origem e os dados do evento.
notify(obj, 'EventName', eventData)
Passa aos listeners um objeto event.EventData personalizado.
Descrição
Eventos permitem que um objeto anuncie que algo aconteceu sem saber quem se interessa. Um cliente registra um callback com addlistener(obj, 'EventName', callback); notify então o chama de forma síncrona, na ordem de criação dos listeners, antes de retornar.
O callback recebe dois argumentos: o objeto de origem e um objeto de dados do evento, cujas propriedades EventName e Source identificam o que disparou. Notificar um evento que a classe não declara é um erro. Listeners desabilitados ou apagados são ignorados.
Argumentos de entrada
obj- Objeto handle cuja classe declara o evento.
'EventName'- Nome de um evento declarado em um bloco
eventsda classe. eventData- Objeto opcional de uma subclasse de
event.EventData.
Exemplo
Um listener reagindo a um evento
writelines(["classdef Btn < handle", " events", " Pressed", " end", "end"], 'Btn.m');
b = Btn;
L = addlistener(b, 'Pressed', @(src, evt) fprintf('%s fired on a %s\n', evt.EventName, class(src)));
notify(b, 'Pressed')
notify(b, 'Pressed')
Pressed fired on a Btn
Pressed fired on a Btn
O exemplo grava antes o arquivo de classe Btn.m na pasta atual; em um projeto, a classe ficaria em seu próprio arquivo.