Come modificare il testo del pulsante in Swift Xcode 6?


122

Ecco cosa sto cercando di fare. Se hai mai giocato ad Halo o CoD, sapresti che potresti cambiare il nome di un equipaggiamento di armi.

Quello che sto facendo è farlo in modo che tu possa cambiare il nome del tuo equipaggiamento usando un campo di testo. Ecco il problema, il nome del caricamento nel menu di caricamento è un pulsante (per selezionare e visualizzare le informazioni su quel caricamento) e potrei semplicemente scrivere questo:

@IBAction func renameClassButton(sender: AnyObject) {
    classTopButton.text = "\(classTopTextField)"
}

Tranne che [classTopButton] è un pulsante che non consente il suffisso ".text"

Risposte:


322

Tu puoi fare:

button.setTitle("my text here", forState: .normal)

Swift 3 e 4:

button.setTitle("my text here", for: .normal)

14
O un po 'più corto. Puoi omettere una UIControlStateparte e scrivere semplicemente mi piace button.setTitle("my text here", forState: .Normal).
mustafa

3
Penso che aiuti a menzionare: buttonè un IBOutlet(in contrasto con il IBActionche contiene questa riga di codice) se stai sfruttando Storyboard.
Sergi

23

In Xcode 8 - Swift 3 :

button.setTitle( "entertext" , for: .normal )


3
Il secondo argomento è ora .normalinvece di .Normal.
Ted Hopp

1
Il capitale .Normalora darà un errore. Le minuscole ora sono corrette. .normal
Joshua Dance

Devo dire che la risposta originale era: button.setTitle ("entertext", per: .Normal) ed è una variante funzionante per la prima versione di Xcode con supporto swift 3.0
Nikola Lukic

7

Ora è questo Per swift 3,

    let button = (sender as AnyObject)
    button.setTitle("Your text", for: .normal)

(La dichiarazione della costante della variabile non è necessaria ma assicurati di utilizzare il mittente dal pulsante in questo modo):

    (sender as AnyObject).setTitle("Your text", for: .normal)

Ricorda che viene utilizzato all'interno dell'IBAction del tuo pulsante.


3

Puoi usare l'argomento del mittente

  @IBAction func TickToeButtonClick(sender: AnyObject) {

        sender.setTitle("my text here", forState: .normal)


}

È una variante funzionante per la prima versione di Xcode con supporto swift 3.0 in seguito. Normale diventa .normal
Nikola Lukic

2

swift 4 funziona così come 3

libero.setTitle("---", for: .normal)

dove libero è un pulsante


2

NOTA:

linea

someButton.setTitle("New Title", forState: .normal)

funziona solo quando il tipo di titolo è normale .

inserisci qui la descrizione dell'immagine


1

Nota che se stai usando NSButton non c'è setTitlefunc, invece, è una proprietà.

@IBOutlet weak var classToButton: NSButton!

. . .


classToButton.title = "Some Text"

1

In Swift 4 ho provato tutto questo in precedenza, ma funziona solo:

@IBAction func myButton(sender: AnyObject) {
   sender.setTitle("This is example text one", for:[])
   sender.setTitle("This is example text two", for: .normal)
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.