UITextField 去掉
要去掉UITextField中的@符号,可以使用textField的代理方法textField:shouldChangeCharactersInRange:replacementString:来判断并过滤输入的字符。
首先,设置UITextField的代理对象: textField.delegate = self
然后,实现UITextFieldDelegate的代理方法: func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { let updatedText = (textField.text as NSString?)?.replacingCharacters(in: range, with: string)
// 判断updatedText中是否包含@符号,如果包含则不允许输入
if let updatedText = updatedText, updatedText.contains("@") {
return false
}
return true
} 在这个代理方法中,我们获取到输入之后更新的文本updatedText,然后判断其中是否包含@符号。如果包含,则返回false,不允许输入;否则返回true,允许输入。
需要注意的是,这种方式只能限制用户输入的@符号,无法限制用户通过粘贴等方式输入@符号。如果需要完全禁止输入@符号,可以使用UITextField的shouldChangeCharactersIn代理方法结合正则表达式来判断并过滤输入的字符
原文地址: http://www.cveoy.top/t/topic/ii7t 著作权归作者所有。请勿转载和采集!