对于 UIControlEvent 对象的 editingDidBegin 属性,术语 'session' 是什么意思?

What does the term 'session' mean in layman terms for the editingDidBegin property of the UIControlEvent object?

在学习教程的同时,我预判了教程的下一步,决定自己尝试一下。 objective 是将 IBAction 函数连接到触摸事件,这样一旦我们开始编辑 UITextField,它就会更新 UILabel。我跳过了建议在连接检查器中连接到 'Editing Changed' 选项的教程,但我不知不觉地连接到了 'Editing Did Begin',因为它在口头上是有意义的。

我 运行 应用程序和我的 UILabel 没有更新。因此我 re-read 教程慢慢地发现我需要使用 'Editing Changed' 触摸事件。我想了解为什么它最初不起作用,所以在查看 Apple 在 UIControlEvents 上的参考文献 material 后,我注意到它使用了术语 'editing session'。谁能解释一下会话是什么?

希望这样我能理解为什么我的过程在第一次尝试时不成功。

class ConversionViewController: UIViewController {
    @IBOutlet var celsiusLabel: UILabel!
    @IBAction func fahrenheitFieldEditingChanged(textField: UITextField){
        celsiusLabel.text = textField.text
    }
}

提前致谢

"editing session"就是从用户开始与文本字段交互(文本字段获得焦点)到用户完成与文本字段交互(文本字段失去焦点)的时间).

换句话说,当用户点击文本字段时,将显示键盘(通常),发送 "Editing Did Begin" 事件,然后会话开始。随着文本的更改(通过键入、剪切或粘贴),每次更改都会导致 "Editing Changed" 事件。当焦点离开文本字段时,键盘关闭,发送 "Editing Did End" 事件,会话结束。

请注意,"editing session" 只是一个高级概念。

您的代码在连接到 "Editing Did Begin" 事件时不起作用,因为发送该事件时文本字段没有改变。这是一个简单地告诉您文本字段现在具有焦点的事件。就是这样。