您应该 return false
在 if block
因为你已经更新了 文本框.
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
if textField.isEqual(textFieldBodrum) {
textFieldBodrum.text = (textField.text as NSString).stringByReplacingCharactersInRange(range, withString: string.lowercaseString)
return false
} else if textField.isEqual(textFieldYalikavak) {
textFieldYalikavak.text = (textField.text as NSString).stringByReplacingCharactersInRange(range, withString: string.uppercaseString)
return false
}
return true
}
如果你不想影响其他 文本字段 你应该 return true
尾声 shouldChangeCharactersInRange function
.
https:/gist.github.comfatihyildizhanac5f476aebd306b0580a1fa069f153a3。
最简单的解决方案是将文本字段的 autocapitalizationType
属性为 .None
默认为小写输入或 .AllCharacters
以默认为大写输入。不过用户仍然可以使用shift键来改变大写。