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


122

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

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

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

それ以外は[classTopButton]は '.text'サフィックスを許可しないボタンです

回答:


321

できるよ:

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

Swift 3および4:

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

14
または少し短い。UIControlState一部を省略してのように書くこともできbutton.setTitle("my text here", forState: .Normal)ます。
mustafa 2014年

3
:私はそれを言及するのに役立ちます考えてbuttonいるIBOutlet(とは対照的にIBAction、このコード行を含む)を使用すると、ストーリーボードを活用している場合。
セルジ

23

Xcode 8- Swift 3の場合

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


3
2番目の引数はの.normal代わりになりました.Normal
テッドホップ2017

1
資本.Normalは今エラーを与えるでしょう。アンダーケースが修正されました。.normal
ジョシュアダンス

私は元の答えは次のとおりであると言う必要があります:button.setTitle( "entertext"、for:.Normal)これは、Swift 3.0をサポートするXcodeの最初のバージョンで機能するバリアントです
Nikola Lukic

7

これは今です

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

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

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

これはボタンのIBAction内で使用されることに注意してください。



2

あなたはセンダー引数を使用することができます

  @IBAction func TickToeButtonClick(sender: AnyObject) {

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


}

これは、Swift 3.0をサポートするXcodeの最初のバージョンで動作するバリアントです。Normalは.normalになります
Nikola Lukic

1

NSButtonを使用している場合、setTitlefuncはなく、プロパティです。

@IBOutlet weak var classToButton: NSButton!

. . .


classToButton.title = "Some Text"

1

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

注意:

ライン

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

TitleタイプがPlainの場合にのみ機能します。

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.