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”
UIControlState
część i po prostu pisać jakbutton.setTitle("my text here", forState: .Normal)
.button
jestIBOutlet
(w przeciwieństwie do tego,IBAction
który zawiera tę linię kodu), jeśli korzystasz ze Storyboard.W Xcode 8 - Swift 3 :
button.setTitle( "entertext" , for: .normal )
źródło
.normal
zamiast.Normal
..Normal
da teraz błąd. Undercase jest teraz poprawne..normal
To jest teraz dla Swift 3,
(Stała deklaracja zmiennej nie jest konieczna, tylko upewnij się, że używasz nadawcy z przycisku w ten sposób):
Pamiętaj, że jest to używane wewnątrz IBAction twojego przycisku.
źródło
Możesz użyć argumentu nadawcy
źródło
szybka 4 praca, jak również 3
gdzie libero jest uibuttonem
źródło
UWAGA:
linia
działa tylko wtedy, gdy typem tytułu jest Zwykły .
źródło
Zauważ, że jeśli używasz NSButton, nie ma
setTitle
funkcji func, zamiast tego jest to właściwość.źródło
W Swift 4 próbowałem tego wszystkiego wcześniej, ale działa tylko:
źródło