我正在尝试将文本字段的第一个字符显示为小写,如果我可以键入大写字符,也必须将其显示为小写。我尝试过
func textField(_ textFieldToChange: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
signUpEmailTextField.autocapitalizationType = .none
}
但是它对我不起作用,我的目标是当我输入大写字母时也应在文本字段中显示小写字母。
答案 0 :(得分:1)
一个简单的解决方案是在文本更改时添加目标,并将文本更新为小写:
override func viewDidLoad() {
super.viewDidLoad()
signUpEmailTextField.addTarget(self, action: #selector(textFieldChanged), for: .editingChanged)
}
@objc func textFieldChanged() {
signUpEmailTextField.text = signUpEmailTextField.text?.lowercased()
}
答案 1 :(得分:0)
通过uppercased()
,您可以实现
如果您有多个文本字段并且不想在所有文本字段中使用大写字母,您还可以检查条件
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if let text = textField.text,
let range = Range.init(range, in: text) {
let newText = text.replacingCharacters(in: range, with: string).uppercased()
textField.text = newText
}
}