【发布时间】:2020-07-10 17:48:44
【问题描述】:
我有一个 Ui 文本字段,当用户在大约 1 秒后停止输入时,我希望出现一个复选标记。我有以下代码:
@objc func getHintsFromTextField(textField: UITextField) {
print("Hints for textField: \(textField)")
}
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange,
replacementString string: String) -> Bool {
NSObject.cancelPreviousPerformRequests(
withTarget: self,
selector: #selector(ViewController.getHintsFromTextField),
object: textField)
self.perform(
#selector(ViewController.getHintsFromTextField),
with: textField,
afterDelay: 3.0)
return true
}
``` @IBAction func password3(_ sender: UITextField) {
if textField(passwordSignUp, shouldChangeCharactersIn: NSMakeRange(5, 10), replacementString: "") == true {
let imageView = UIImageView()
let image1 = #imageLiteral(resourceName: "icons8-ok-28")
imageView.image = image1
self.passwordSignUp?.rightView = imageView
self.passwordSignUp?.rightViewMode = UITextField.ViewMode.always
self.passwordSignUp?.rightViewMode = .always
errorLabel?.alpha = 0
}
}
(顺便说一下,IBAction func password3 正在开始输入) 当我一点击文本字段就运行我的代码时,会出现复选标记。我做错了什么。
【问题讨论】:
-
能分享一下隐藏和显示对勾的代码吗?
-
@ShashankMishra 现在这就是我所有的复选标记代码。现在我只是在用户停止输入后显示它
-
除问题外,您不得自己调用包含
will、did或should的委托方法。
标签: swift xcode uitextfield nsrange