Различия между `.EditingDidEnd` и`.EditingDidEndOnExit`

В чем заключаются различия между UIControlEvents .EditingDidEnd и .EditingDidEndOnExit и как они соотносятся друг с другом?

Документация на UIControl довольно расплывчата и не содержит информации о том, является ли этот огонь по разным причинам, если он является надмножеством другого, или если они" функционально эквивалентны.

Возможность того, что одна из них является супермножеством, особенно запутанна, так как именование означает, что .EditingDidEndOnExit является конкретным появлением .EditingDidEnd, но документация, похоже, подразумевает обратное.

Ответ 1

".EditingDidEnd" вызывается, когда кто-то касается вне границ текстового поля, потому что они, вероятно, будут взаимодействовать с каким-то другим элементом управления или объектом.

"EditingDidEndOnExit" вызывается, когда пользователь нажимает кнопку "return" на клавиатуре (и вы правы, это неясно в документации... но если вы посмотрите на файл UIControl.h вы увидите комментарий, отражающий этот момент).

Ответ 2

В заголовке UIControl:

UIControlEventEditingDidEnd       = 1 << 18,
UIControlEventEditingDidEndOnExit = 1 << 19,     // 'return key' ending editing

Итак, когда нажата клавиша возврата, другая от касания вне границ.