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

Trying to capitalize the first letter of each word in a text field Using Swift

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

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

我的问题是我不知道该放什么。我试过创建一个 post 告诉我的字符串,但我遇到了麻烦:

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

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

简单地设置Textfield的单词大小写。

从这个问题的代码方面来看,假设它与 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())
    

首字母强制大写:

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
    }

}