Differences between `.EditingDidEnd` and `.EditingDidEndOnExit`

ios, uicontrolevents, uikit, uitextfield

Solution

"`.EditingDidEnd`" is called when somebody touches outside of the bounds of the text field, because they're likely about to interact with some other control or object.

"`EditingDidEndOnExit`" is called when the user clicks the "`return`" key in the keyboard (and you're right, it's not clear in the documentation... but if you look at the UIControl.h file you'll see a comment reflecting this point).

Problem

What exactly are the differences between the `UIControlEvents` `.EditingDidEnd` and `.EditingDidEndOnExit`, and how do they relate to each other? The documentation on UIControl is pretty vague, and has no information of whether these fire for different reasons, if one is a superset of the other, or if they're functionally equivalent. The possibility of one being a superset is especially confusing, since the naming implies that `.EditingDidEndOnExit` is a specific occurrence of `.EditingDidEnd`, but the documentation seems to imply the opposite.

Original source