UIControlEvents.EditingDidEnd和.EditingDidEndOnExit之间的区别到底是什么,它们之间有什么联系?关于UIControl的文档非常模糊,并且没有说明这些触发是否出于不同的原因,是否一个是另一个的超集,或者它们在功能上是否等效。一个是超集的可能性尤其令人困惑,因为命名暗示.EditingDidEndOnExit是.EditingDidEnd的特定出现,但文档似乎暗示相反。
UIControlEvents
.EditingDidEnd
.EditingDidEndOnExit
7vux5j2d1#
当有人触摸文本字段的边界之外时,将调用“.EditingDidEnd“,因为他们可能要与其他控件或对象交互。当用户单击键盘上的“return“键时,将调用“EditingDidEndOnExit“(您是对的,文档中对此并不清楚......但是如果您查看UIControl. h文件,就会看到反映这一点的注解)。
return
EditingDidEndOnExit
e4yzc0pl2#
从UIControl标题:
UIControlEventEditingDidEnd = 1 << 18, UIControlEventEditingDidEndOnExit = 1 << 19, // 'return key' ending editing
所以一个是当回车键被按下时,另一个是从触摸边界之外。
y3bcpkx13#
当用户点击键盘的回车键时,将按顺序执行以下事件:
当用户点击另一个UITextField或UITextView对象时,仅执行“editingDidEnd”。当应用程序代码对给定UITextField执行“resignFirstResponder()”时,仅执行“editingDidEnd”。当应用程序代码执行“endEditing(true|false)',则只执行'editingDidEnd'。当应用程序代码对另一个UITextField执行“becomeFirstResponder()”时,仅执行“editingDidEnd”。当用户点击键盘的回车键并且textField具有委托时,将按顺序执行以下事件:
如果支持以下一个或两个事件,键盘将关闭:
在iOS 16.2上检查
3条答案
按热度按时间7vux5j2d1#
当有人触摸文本字段的边界之外时,将调用“
.EditingDidEnd
“,因为他们可能要与其他控件或对象交互。当用户单击键盘上的“
return
“键时,将调用“EditingDidEndOnExit
“(您是对的,文档中对此并不清楚......但是如果您查看UIControl. h文件,就会看到反映这一点的注解)。e4yzc0pl2#
从UIControl标题:
所以一个是当回车键被按下时,另一个是从触摸边界之外。
y3bcpkx13#
当用户点击键盘的回车键时,将按顺序执行以下事件:
当用户点击另一个UITextField或UITextView对象时,仅执行“editingDidEnd”。
当应用程序代码对给定UITextField执行“resignFirstResponder()”时,仅执行“editingDidEnd”。
当应用程序代码执行“endEditing(true|false)',则只执行'editingDidEnd'。
当应用程序代码对另一个UITextField执行“becomeFirstResponder()”时,仅执行“editingDidEnd”。
当用户点击键盘的回车键并且textField具有委托时,将按顺序执行以下事件:
如果支持以下一个或两个事件,键盘将关闭:
在iOS 16.2上检查