¿Cómo cambiar el texto del botón en Swift Xcode 6?


122

Esto es lo que intento hacer. Si alguna vez jugaste Halo o CoD, sabrías que puedes cambiar el nombre de una carga de armas.

Lo que estoy haciendo es hacerlo para que pueda cambiar su nombre de carga utilizando un campo de texto. Aquí está el problema, el nombre de carga en el menú de carga es un botón (para seleccionar y ver información sobre esa carga) y podría escribir esto:

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

Excepto que [classTopButton] es un botón que no permite el sufijo '.text'

Respuestas:


322

Tu puedes hacer:

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

Swift 3 y 4:

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

14
O un poco más corto. Puede omitir UIControlStateparte y simplemente escribir como button.setTitle("my text here", forState: .Normal).
mustafa

3
Creo que es útil mencionar: buttones un IBOutlet(en contraste con el IBActionque contiene esta línea de código) si está aprovechando Storyboard.
Sergi

23

En Xcode 8 - Swift 3 :

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


3
El segundo argumento es ahora en .normallugar de .Normal.
Ted Hopp

1
El capital .Normaldará un error ahora. Undercase ahora es correcto. .normal
Joshua Dance

Debo decir que la respuesta original fue: button.setTitle ("entertext", para: .Normal) y es una variante de trabajo para la primera versión de Xcode con soporte swift 3.0
Nikola Lukic

7

Ahora es esto para Swift 3,

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

(La declaración constante de la variable no es necesaria, solo asegúrese de usar el remitente desde el botón de esta manera):

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

Recuerde que esto se usa dentro de la IBAction de su botón.


3

Puedes usar el argumento del remitente

  @IBAction func TickToeButtonClick(sender: AnyObject) {

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


}

Es una variante de trabajo para la primera versión de Xcode con soporte para swift 3.0 más tarde. Normal se convierte en .normal
Nikola Lukic

2

Swift 4 funciona tan bien como 3

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

donde libero es un uibutton


2

NOTA:

línea

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

funciona solo cuando el tipo de título es simple .

ingrese la descripción de la imagen aquí


1

Tenga en cuenta que si está usando NSButton no hay setTitlefunc, en cambio, es una propiedad.

@IBOutlet weak var classToButton: NSButton!

. . .


classToButton.title = "Some Text"

1

En Swift 4 probé todo esto anteriormente, pero solo se ejecuta:

@IBAction func myButton(sender: AnyObject) {
   sender.setTitle("This is example text one", for:[])
   sender.setTitle("This is example text two", for: .normal)
}
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.