web-dev-qa-db-ja.com

Swift Xcode 6でボタンのテキストを変更する方法

これが私がやろうとしていることです。 HaloまたはCoDをプレイしたことがあれば、武器のロードアウトの名前を変更できることをご存知でしょう。

テキストフィールドを使用してロードアウト名を変更できるようにするためです。これが問題です。ロードアウトメニューのロードアウト名は(そのロードアウトに関する情報を選択して表示するための)ボタンです。

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

それ以外の場合[classTopButton]は '.text'接尾辞を許可しないボタンです

107
GuavaMantis

できるよ:

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

Swift 3 and 4:

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

Xcode 8では - Swift

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

20
Nikola Lukic

これはSwift 3の場合はこれで、

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

(変数の定数宣言は必ずしも必要ではありません。このようにボタンから送信者を使用するようにしてください):

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

これはボタンのIBAction内で使用されていることを忘れないでください。

6
Ty Victorson

Swift 4と3の作業

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

liberoは、Uibuttonです。

2

送信者引数を使用できます

  @IBAction func TickToeButtonClick(sender: AnyObject) {

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


}
2
mzonerz

NSButtonを使用しているのであれば、setTitle関数はなく、代わりにプロパティです。

@IBOutlet weak var classToButton: NSButton!

. . .


classToButton.title = "Some Text"
1
Nathan F.

Swift 4では、これまですべて試してみましたが、実行されるのは次のとおりです。

@IBAction func myButton(sender: AnyObject) {
   sender.setTitle("This is example text one", for:[])
   sender.setTitle("This is example text two", for: .normal)
}
1