2016-01-01 11 views
6

Sto cercando di scrivere la prima lettera di ogni parola inserita in un campo di testo. Vorrei inserire questo codice qui:Tentativo di utilizzare la maiuscola per la prima lettera di ogni parola in un campo di testo Utilizzo di Swift

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

Il mio problema è che non ho idea di cosa mettere. Ho cercato di creare una stringa come un post mi ha detto di fare, e sto avendo problemi:

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

Non sono sicuro di cosa mettere dentro quella funzione di capitalizzare la prima lettera di ogni parola.

+3

Perché non impostata 'proprietà autocapitalizationType' del campo di testo a' Words'? Quindi mentre l'utente digita, ogni parola sarà automaticamente in maiuscolo. – rmaddy

+0

@rmaddy perché non postare il tuo commento come risposta? 'textField.autocapitalizationType = .Words' –

+1

@LeoDabus Perché il mio commento non risponde alla domanda. È solo un breve commento per offrire una possibile soluzione alternativa. Non so se l'OP abbia effettivamente esigenze diverse. – rmaddy

risposta

9

Basta impostare il maiuscolo di Textfield per le parole.

enter image description here

+0

come rendere l'etichetta 'UIButton' come Capitalize. –

+0

Modifica opzione di capitalizzazione non funziona per me. :-( –

2

Dal lato codice di questa domanda, supponendo che sia associato IBOutlet.

  • Se la necessità è quella di modificare il comportamento campo di testo:

    textField.autocapitalizationType = .Words 
    
  • Se la necessità è quella di cambiare l'ingresso per il campo di testo, cioè il String stessa:

    let newText = textField.text?.capitalizedString 
    
  • Non chiesto nella domanda, ma ancora: per capitalizzare solo la prima lettera:

    let text = textField.text 
    let newText = String(text.characters.first!).capitalizedString + String(text.characters.dropFirst())