Есть ли в Swift способ захвата событий на экране, аналогичный тому, как работает делегирование событий в JavaScript? Я хотел бы найти способ реагировать на события без необходимости встраивать вызовы журналов в каждый метод. Я считаю, что UIResponder может иметь эту возможность, но мне не ясно, как прослушивать все UIEvents.
Например:
extension UIResponder {
func listenForAllButtonTaps() {
// listen to all button taps, figure out the button and screen, log to logger
}
}
@objc func buttonOne() {
// no logging method
...
}
@objc func buttonTwo() {
...
}
Кажется, метод swizzling является наиболее распространенным подходом к этому.