如何快速调用此函数?
Posted
技术标签:
【中文标题】如何快速调用此函数?【英文标题】:how to call this function in swift? 【发布时间】:2018-05-23 02:32:45 【问题描述】:我有这个函数但问题是我不知道如何在super.viewDidLoad
上调用这个函数
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool
if let text = namaTextField.text
if let floatingLabelTextField = textField as? SkyFloatingLabelTextField
if(text.characters.count < 3 || !text.contains("@"))
floatingLabelTextField.errorMessage = "Invalid email"
else
// The error message will only disappear when we reset it to nil or empty string
floatingLabelTextField.errorMessage = ""
return true
【问题讨论】:
这是一个 UITextField 的委托函数,每次在 UITextField 的文本发生变化之前都会调用它,以便您确定是否应该发生变化。通常不需要显式调用它,但如果你真的这样做了,那么只需按照方法需要传入 textField、范围和替换字符串。 如果你遇到的问题是方法没有被调用,那么它应该仔细检查你的这个类是否是一个 UITextField 委托并且 nameTextField.delegate 设置为这个类的一个实例。跨度> 您认为为什么需要调用此文本字段委托方法?您不应该自己调用它。请说明你的目标。 您可以手动调用它(通常不会),但您必须先了解委托模式的工作原理。 【参考方案1】:这看起来像是来自UITextFieldDelegate
的委托方法。你的视图控制器类应该符合UITextFieldDelegate
。
文本字段委托方法不应该被 VC 调用。它们应该由文本字段调用。
这个特殊的方法是问你“我应该把这个范围的文本改成这个替换字符串吗?”在方法中你做了一些逻辑并返回true
(你回答“是”)。
每当文本字段的当前文本发生变化时,都会调用此方法来询问您“这部分文本是否真的应该改变?”。
文本字段会调用这个方法,所以不用担心。您唯一应该做的就是将self
设置为delegate
:
namaTextField.delegate = self
【讨论】:
【参考方案2】:它是textField Delegate方法,每次当你试图改变TextField中的文本时,这个方法在改变之前调用,这样你就可以选择天气是否改变。
根据我的经验,你不能自己调用它。
【讨论】:
以上是关于如何快速调用此函数?的主要内容,如果未能解决你的问题,请参考以下文章