由于您已经更新了文本字段,所以在if块
中应该返回false
。
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
}
如果您不想影响其他的文本字段,您应该在 shouldChangeCharactersInRange function
的末尾 return true
。
https://gist.github.com/fatihyildizhan/ac5f476aebd306b0580a1fa069f153a3最简单的解决方案是将文本字段的autocapitalizationType
属性设置为.None
,以默认为小写输入,或者设置为.AllCharacters
,以默认为大写输入。用户仍然可以使用Shift键改变大小写。