2014-10-29 15 views
78

Oto, co próbuję zrobić. Jeśli kiedykolwiek grałeś w Halo lub CoD, wiedziałbyś, że możesz zmienić nazwę ładunku broni.Jak zmienić tekst przycisku w Swift Xcode 6?

To, co robię, polega na tym, że możesz zmienić swoją nazwę doładowania za pomocą pola tekstowego. Oto problem, nazwa obciążenia w menu load-out jest przycisk (aby wybrać i wyświetlić informacje na temat tego obciążenia-out), a może po prostu napisać to:

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

Tyle że [classTopButton] jest przycisk, który nie pozwala na rozszerzenie '.text'

Odpowiedz

205

można zrobić:

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

Swift 3:

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

Or trochę krótszy. Możesz pominąć część 'UIControlState' i po prostu napisać jak' button.setTitle ("mój tekst tutaj", forState: .Normal) '. – mustafa

+2

Myślę, że pomaga wspomnieć: 'button' to' IBOutlet' (w przeciwieństwie do 'IBAction', który zawiera ten wiersz kodu), jeśli używasz Storyboard. – whalesharkie

15

W Xcode 8 - Swift 3:

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

+1

Drugi argument to teraz '.normal' zamiast' .Normal'. –

+0

Kapitał '.Normal' spowoduje błąd teraz. Undercase jest teraz poprawne. '.normal' –

0

można użyć nadawca argumentem

@IBAction func TickToeButtonClick(sender: AnyObject) { 

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


} 
0

Zauważ, że jeśli używasz NSButton nie ma setTitle func, zamiast, to nieruchomość .

@IBOutlet weak var classToButton: NSButton! 

. . . 


classToButton.title = "Some Text" 
5

Teraz jest to dla szybkiej 3,

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

(Stała deklaracja zmiennej nie jest konieczne, wystarczy upewnić się użyć nadawcę z przycisku jak poniżej):

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

Pamiętaj, że jest to używane w IBAction Twojego przycisku.

0

Swift 4 prace, a także 3

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

gdzie libero jest uibutton

0

w Swift 4 Próbowałem to wszystko 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) 
} 
Powiązane problemy