Sobes.tech
Junior — Middle

Como é que é feita a gestão de múltiplos ouvintes ligados a um único evento de clique?

sobes.tech IA

Resposta da IA

No iOS, se um evento, por exemplo, um toque (touchUpInside), estiver associado a vários ouvintes (target-action), eles são chamados na ordem de adição. Cada ouvinte recebe o evento e pode executar sua lógica.

Se precisar controlar a ordem ou impedir o processamento posterior, pode gerenciar isso dentro do manipulador, por exemplo, desativando outros ouvintes ou usando flags. No entanto, o mecanismo padrão do UIKit não fornece uma maneira embutida de parar a propagação do evento entre os ouvintes.

Exemplo de adicionar vários manipuladores a um UIButton:

button.addTarget(self, action: #selector(firstHandler), for: .touchUpInside)
button.addTarget(self, action: #selector(secondHandler), for: .touchUpInside)

@objc func firstHandler() {
    print("Primeiro manipulador")
}

@objc func secondHandler() {
    print("Segundo manipulador")
}

Ao clicar, ambos os manipuladores serão chamados em sequência.