【问题标题】:Typing always (force) lowercase or uppercase - ios swift总是输入(强制)小写或大写 - ios swift
【发布时间】:2015-08-13 13:01:53
【问题描述】:

如何在 swift 语言中强制某些文本字段始终输入小写或大写?

【问题讨论】:

  • 此解决方案适用于 Swift 语言。不适用于 Objective-C。
  • 接受的答案可以快速使用,没有麻烦
  • 这是一个有效的问题,我不明白为什么这被否决了。如果已经询问,可以将其标记为重复。

标签: ios swift uitextfield


【解决方案1】:

您应该在if blockreturn 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

【讨论】:

  • Swift 4.2 方法已更改为:yourTextField.text = (textField.text! as NSString).replacingCharacters(in: range, with: string.lowercased())
  • 接受的答案有效,但导致我添加到 .editingChanged 的​​目标方法未触发的意外问题。答案是在单独的 .editingChanged 方法中将任何大写字母更改为小写字母。在这里查看@LeoDabus 的答案 stackoverflow.com/a/54926833/4833705
【解决方案2】:

最简单的解决方案是将文本字段的autocapitalizationType 属性设置为.None 默认为小写输入或.AllCharacters 默认为大写输入。不过,用户仍然可以使用 shift 键更改大小写。

【讨论】:

  • 你是对的,但我想强制输入小写或大写。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-24
  • 2020-03-30
  • 2019-08-29
  • 2011-01-02
  • 2020-11-16
相关资源
最近更新 更多