События и делегаты имеют две разные цели, так что вы увидите, как они используются.
Если вы просто хотите, чтобы нажатие кнопки вызывало сообщение, событие подходит.Если вы хотите, чтобы ваше нажатие кнопки Готово подтвердило контекст текстового поля, прежде чем оно может потерять фокус, вы можете использовать метод делегата textFieldShouldReturn
, чтобы обработать любую проверку и вернуть НЕТ, если это не так.validate.
Делегаты действительно позволяют вам изменять поведение без создания подклассов.Они заполнены , должны и сделали методы для этой цели.Вы реализуете эти методы вместо переопределения методов действия, когда хотите проверить, уведомить или обработать до и / или после действия.
Если вам кажется, что вам нужно создать подкласс объекта UIKit, проверьте его делегатметоды в первую очередь.Скорее всего, уже есть место, где можно настроить свое поведение.