ios `“EditingDidEnd”和.“EditingDidEndOnExit”之间的区别

wn9m85ua  于 2023-02-14  发布在  iOS
关注(0)|答案(3)|浏览(466)

UIControlEvents.EditingDidEnd.EditingDidEndOnExit之间的区别到底是什么,它们之间有什么联系?
关于UIControl的文档非常模糊,并且没有说明这些触发是否出于不同的原因,是否一个是另一个的超集,或者它们在功能上是否等效。
一个是超集的可能性尤其令人困惑,因为命名暗示.EditingDidEndOnExit.EditingDidEnd的特定出现,但文档似乎暗示相反。

7vux5j2d

7vux5j2d1#

当有人触摸文本字段的边界之外时,将调用“.EditingDidEnd“,因为他们可能要与其他控件或对象交互。
当用户单击键盘上的“return“键时,将调用“EditingDidEndOnExit“(您是对的,文档中对此并不清楚......但是如果您查看UIControl. h文件,就会看到反映这一点的注解)。

e4yzc0pl

e4yzc0pl2#

从UIControl标题:

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

所以一个是当回车键被按下时,另一个是从触摸边界之外。

y3bcpkx1

y3bcpkx13#

当用户点击键盘的回车键时,将按顺序执行以下事件:

  • 编辑退出时结束
  • 主要操作触发
  • 编辑结束日期

当用户点击另一个UITextField或UITextView对象时,仅执行“editingDidEnd”。
当应用程序代码对给定UITextField执行“resignFirstResponder()”时,仅执行“editingDidEnd”。
当应用程序代码执行“endEditing(true|false)',则只执行'editingDidEnd'。
当应用程序代码对另一个UITextField执行“becomeFirstResponder()”时,仅执行“editingDidEnd”。
当用户点击键盘的回车键并且textField具有委托时,将按顺序执行以下事件:

  • 委托:文本字段应返回
  • 编辑退出时结束
  • 主要操作触发
  • 编辑结束日期
  • 委托:文本字段结束编辑

如果支持以下一个或两个事件,键盘将关闭:

  • 添加目标(自身,操作:#选择器(编辑结束时结束),用于:.编辑退出时结束)
  • 添加目标(自身,操作:#选择器(主操作触发),用于:. primary触发的操作)

在iOS 16.2上检查

相关问题