代码之家  ›  专栏  ›  技术社区  ›  Andy Lebowitz

尝试使用Swift将文本字段中每个单词的第一个字母大写

  •  12
  • Andy Lebowitz  · 技术社区  · 9 年前

    我正在尝试将输入文本字段的每个单词的第一个字母大写。我想把这个代码放在这里:

    func textFieldShouldReturn(textField: UITextField) -> Bool {
    //Here
    }
    

    我的问题是我不知道该说什么。我试过像一篇帖子告诉我的那样创建字符串,但我遇到了麻烦:

    nameOfString.replaceRange(nameOfString.startIndex...nameOfString.startIndex, with: String(nameOfString[nameOfString.startIndex]).capitalizedString)
    

    我不知道该在函数中放入什么来大写每个单词的第一个字母。

    3 回复  |  直到 7 年前
        1
  •  19
  •   technerd    9 年前

    只需为单词设置Textfield的大写。

    enter image description here

        2
  •  8
  •   Idan    8 年前

    从这个问题的代码方面来看,假设它与 IBOutlet .

    • 如果需要更改文本字段行为:

      textField.autocapitalizationType = .Words
      
    • 如果需要更改文本字段的输入,即 String 自身:

      let newText = textField.text?.capitalizedString
      
    • 在问题中被问到,但是:仅大写第一个字母:

      let text = textField.text
      let newText = String(text.characters.first!).capitalizedString + String(text.characters.dropFirst())
      
        3
  •  3
  •   Makalele    7 年前

    这是第一个字母的强制大写:

    firstNameTextField.delegate = self
    
    extension YourViewController : UITextFieldDelegate {
    
        func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
            let empty = textField.text?.isEmpty ?? true
            if(empty) {
                textField.text = string.uppercased()
                return false
            }
    
            return true
        }
    
    }