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 events da 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')
Saída
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.

Veja também

addlistener events handle delete