Jak zmienić tekst przycisku w Swift Xcode 6?


122

Oto, co próbuję zrobić. Jeśli kiedykolwiek grałeś w Halo lub CoD, wiedziałbyś, że możesz zmienić nazwę wyposażenia broni.

Robię to, abyś mógł zmienić nazwę załadunku za pomocą pola tekstowego. Oto problem, nazwa załadunku w menu ładowania to przycisk (do wyboru i przeglądania informacji o tym załadunku) i mogę po prostu napisać to:

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

Z wyjątkiem tego, że [classTopButton] jest przyciskiem, który nie zezwala na rozszerzenie „.text”

Odpowiedzi:


323

Możesz to zrobić:

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

Swift 3 i 4:

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

14
Albo trochę krócej. Możesz pominąć UIControlStateczęść i po prostu pisać jak button.setTitle("my text here", forState: .Normal).
mustafa

3
Myślę, że warto wspomnieć: buttonjest IBOutlet(w przeciwieństwie do tego, IBActionktóry zawiera tę linię kodu), jeśli korzystasz ze Storyboard.
Sergi

23

W Xcode 8 - Swift 3 :

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


3
Drugi argument to teraz .normalzamiast .Normal.
Ted Hopp,

1
Kapitał .Normalda teraz błąd. Undercase jest teraz poprawne. .normal
Joshua Dance

Muszę powiedzieć, że oryginalna odpowiedź brzmiała: button.setTitle ("entertext", dla: .Normal) i jest to działający wariant dla pierwszej wersji Xcode z obsługą swift 3.0
Nikola Lukic

7

To jest teraz dla Swift 3,

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

(Stała deklaracja zmiennej nie jest konieczna, tylko upewnij się, że używasz nadawcy z przycisku w ten sposób):

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

Pamiętaj, że jest to używane wewnątrz IBAction twojego przycisku.


3

Możesz użyć argumentu nadawcy

  @IBAction func TickToeButtonClick(sender: AnyObject) {

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


}

Jest to działający wariant dla pierwszej wersji Xcode z późniejszą obsługą Swift 3.0. Normalny staje się .normal
Nikola Lukic


2

UWAGA:

linia

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

działa tylko wtedy, gdy typem tytułu jest Zwykły .

wprowadź opis obrazu tutaj


1

Zauważ, że jeśli używasz NSButton, nie ma setTitlefunkcji func, zamiast tego jest to właściwość.

@IBOutlet weak var classToButton: NSButton!

. . .


classToButton.title = "Some Text"

1

W Swift 4 próbowałem tego wszystkiego wcześniej, ale działa tylko:

@IBAction func myButton(sender: AnyObject) {
   sender.setTitle("This is example text one", for:[])
   sender.setTitle("This is example text two", for: .normal)
}
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.