如何在Swift Xcode 6中更改按钮文本?


122

这就是我想要做的。如果您曾经玩过Halo或CoD,您就会知道可以更改武器输出的名称。

我正在做的就是这样,您可以使用文本字段更改加载名称。这就是问题所在,加载菜单中的加载名称是一个按钮(用于选择和查看有关该加载的信息),我可以这样写:

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

除此之外,[classTopButton]是不允许使用'.text'后缀的按钮

Answers:


321

你可以做:

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

雨燕3和4:

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

14
或短一点。您可以省略UIControlState部分,而只需写成button.setTitle("my text here", forState: .Normal)
mustafa 2014年

3
我认为应该提一下:如果使用Storyboard ,这button是一个IBOutlet(与IBAction包含这一行代码的相比)。
塞尔吉(Sergi)2015年

23

在Xcode 8- Swift 3中

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


3
第二个参数是现在.normal,而不是.Normal
泰德·霍普

1
资本.Normal现在会出错。小写现在是正确的。.normal
约书亚舞

我必须说原始答案是:button.setTitle(“ entertext”,用于:.Normal),并且它是具有快速3.0支持的第一版Xcode的有效变体
Nikola Lukic,

7

现在是这个对于迅捷3,

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

(变量的常量声明不是必需的,只需确保您使用像这样的按钮发送者即可):

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

请记住,这是在按钮的IBAction中使用的。



2

您可以使用sender参数

  @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 type为Plain时有效

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.