【发布时间】:2015-08-13 13:01:53
【问题描述】:
【问题讨论】:
-
此解决方案适用于 Swift 语言。不适用于 Objective-C。
-
接受的答案可以快速使用,没有麻烦
-
这是一个有效的问题,我不明白为什么这被否决了。如果已经询问,可以将其标记为重复。
标签: ios swift uitextfield
【问题讨论】:
标签: ios swift uitextfield
您应该在if block 中return 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
}
如果您不想影响其他文本字段,您应该以return true 结尾的shouldChangeCharactersInRange function。
https://gist.github.com/fatihyildizhan/ac5f476aebd306b0580a1fa069f153a3
【讨论】:
最简单的解决方案是将文本字段的autocapitalizationType 属性设置为.None 默认为小写输入或.AllCharacters 默认为大写输入。不过,用户仍然可以使用 shift 键更改大小写。
【讨论】: