要去掉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代理方法结合正则表达式来判断并过滤输入的字符

UITextField 去掉

原文地址: http://www.cveoy.top/t/topic/ii7t 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录