ios - textFieldDidChange 和 shouldChangeCharactersIn 方法的主要区别是什么,UITextFieldDelegate 的委托?
问题描述
有人可以解释一下何时使用以及它们之间的区别吗?
解决方案
textDidChange
当在 Textfield 中输入任何文本并且您希望输入文本TextField
以检查验证或任何内容时,就会发生简单的单词...
func textDidChange(_ textField: UITextField) {
guard let email = emailTextField.text, !email.isEmpty, email.isValidEmail() else {
//Write your code here...
return }
guard let password = passwordTextField.text, !password.isEmpty else {
//Write your code here..
return }
//Write your success code.
}
并shouldChangeCharactersIn
在任何键入的键即将在 Textfield 中打印之前发生事件。这样您就可以更改该密钥并允许或限制该密钥。
例如:如果用户在密码文本字段中输入空格,您可以限制该键并且空格将永远不会在文本字段中打印。
在下面的代码中,我限制了我的文本字段中的空格(“”)键。
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if range.location == 0 && string == " " {
return false
}
return true
}
推荐阅读
- c++ - 如何使用 C++ 初始化向量;脚本值不是数组、指针或向量错误
- android - 如何在 react-native Android 应用程序中将调试器附加到发布版本的本机代码?
- javascript - 如何获取 Google 幻灯片标题和幻灯片编号的列表 - Google Apps 脚本
- mongodb - MongoDB 更新并插入数组
- typescript - 具有多重继承的 TypeScript 接口似乎不包括所有静态方法
- android - Android Docx4J Gradle:重复的类 org.slf4j 尽管排除了它
- android - RecycleView.setHasFixedSize(true) 时不显示 Recyclerview;被添加
- python - 使用 Qt 上传文件
- json - 如何将 JSON_VALUE 与变量一起使用
- linux - Linux 期望脚本有时以“外部主机关闭连接”结尾,这是期望脚本还是设备问题?