How to change button text in Swift Xcode 6?
IosSwiftIos Problem Overview
Here's what I'm trying to do. If you've ever played Halo or CoD, you'd know that you could change the name of a weapon load-out.
What I'm doing is making it so you can change your load-out name using a text field. Here's the problem, the load-out name in the load-out menu is a button (to select and view info about that load-out) and I could just write this:
@IBAction func renameClassButton(sender: AnyObject) {
classTopButton.text = "\(classTopTextField)"
}
Except it [classTopButton] is a button which doesn't allow the '.text' suffix
Ios Solutions
Solution 1 - Ios
You can do:
button.setTitle("my text here", forState: .normal)
Swift 3 and 4:
button.setTitle("my text here", for: .normal)
Solution 2 - Ios
In Xcode 8 - Swift 3:
button.setTitle( "entertext" , for: .normal )
Solution 3 - Ios
It is now this For swift 3,
let button = (sender as AnyObject)
button.setTitle("Your text", for: .normal)
(The constant declaration of the variable is not necessary just make sure you use the sender from the button like this) :
(sender as AnyObject).setTitle("Your text", for: .normal)
Remember this is used inside the IBAction of your button.
Solution 4 - Ios
Solution 5 - Ios
You can Use sender argument
@IBAction func TickToeButtonClick(sender: AnyObject) {
sender.setTitle("my text here", forState: .normal)
}
Solution 6 - Ios
swift 4 work as well as 3
libero.setTitle("---", for: .normal)
where libero is a uibutton
Solution 7 - Ios
Note that if you're using NSButton there is no setTitle
func, instead, it's a property.
@IBOutlet weak var classToButton: NSButton!
. . .
classToButton.title = "Some Text"
Solution 8 - Ios
In Swift 4 I tried all of this previously, but runs only:
@IBAction func myButton(sender: AnyObject) {
sender.setTitle("This is example text one", for:[])
sender.setTitle("This is example text two", for: .normal)
}