gpt4 book ai didi

ios - UITextFieldDelegate 与 UITextField 控件事件

转载 作者:技术小花猫 更新时间:2023-10-29 11:12:41 25 4
gpt4 key购买 nike

如果我想处理对 UITextField 的更改,例如用户在其中输入;这似乎可以通过为该文本字段分配一个委托(delegate),然后让委托(delegate)实现 shouldChangeCharactersInRange,或者通过向文本字段添加一个目标,并处理 UIControlEventEditingChanged 事件来完成。

除了使用委托(delegate)方法可以返回 NO 并因此阻止用户进行编辑之外,这两者之间有什么区别吗?

处理编辑开始或编辑结束的相同问题。它可以通过适当的委托(delegate)方法或适当的事件来完成。如果控件事件可以完成必要的工作,那么 textField 委托(delegate)实际上有什么用?

最佳答案

shouldChangeCharactersInRange 在更改发生之前被调用,让您有机会“取消”更改。 UIControlEventEditingChanged 在更改发生后调用。

您可以确定 shouldChangeCharactersInRange 中 textField 的结果值,但您必须使用提供的范围手动将 replacementString 应用于现有文本。 (通过 NSString stringByReplacingCharactersInRange)。如果您想知道结果文本,使用 UIControlEventEditingChanged 会更简单、更高效。

shouldChangeCharactersInRange 通常用于实现输入的验证检查 - 也就是说,您可以在输入时过滤字符/粘贴的文本。例如,如果一个字段用于电话号码,当用户键入非数字字符或尝试粘贴非数字文本时,您可以返回 FALSE

如果您坚持使用 UIControlEvent-methods,您可能会发现可以为多个控件重用代码的情况。

关于ios - UITextFieldDelegate 与 UITextField 控件事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4923950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com