如何在单击按钮时更改按钮的文本? - 斯威夫特

时间:2015-02-12 03:45:04

标签: ios swift text uibutton

我是编程新手,所以请记住这一点。我在这个网站上看了几个其他的问题,并尝试了他们给出的答案,但那些对我没用。我试图用来更改按钮的代码是:

@IBAction func AnswerButtonA(sender: UIButton)
{
    [AnswerButtonA setTitle:@"Hello World" forState:UIControlStateNormal];
}

这是我发现的最常见的方法,但它会带来一些错误"预期声明" "预期的属性名称" "期待','分隔符,以及其他一些。

我尝试的另一件事是其他人建议的:

@IBAction func AnswerButtonA(sender: UIButton)
{
    AnswerButtonA.setTitle("Hello World")
}

这个以及我尝试过的其他一些事情都会带来错误"'(UIButton) - >()'没有名为' setTitle'。

的成员

我意识到这可能是一个愚蠢的问题,但我无法弄清楚。这是我试图自己开发的第一个应用程序,我做得很好,直到这个问题。任何帮助将不胜感激,如果你能详细说明我做错了什么会太棒了!

(我只想在按下按钮时更改按钮,而不是在加载视图时更改。)

6 个答案:

答案 0 :(得分:27)

在第一个问题中,您尝试在Swift文件中使用Objective-C代码。

在你的第二个例子中,你没有通过控制状态。

在这两种情况下,正如杰里米·波普所指出的那样,你指的是AnswerButtonA作为方法,而不是按钮。

您需要为按钮创建一个插座(或使用杰里米答案中的sender)。

从那里,您可以找到以下内容:

answerButtonA.setTitle("Hello World", forState: .Normal)

方法签名会在您输入时弹出:

enter image description here

答案 1 :(得分:4)

正在按下的按钮作为名为sender的参数发送。 AnswerButtonA是您创建的方法。只是样式注释,通常第一个字母是小写的方法。再次,AnswerButtonA是单击按钮时调用的方法,发件人是单击的实际按钮。

IBAction func AnswerButtonA(sender: UIButton)
{
    //sender is the button that was pressed
    sender.setTitle("HelloWorld", forState: .Normal)
}

答案 2 :(得分:2)

你可以试试这个

@IBOutlet  answerButtonA : UIButton!

@IBAction func answerButtonAClicked(sender: UIButton)
{
     answerButtonA.setTitle("YourTitle", forState: UIControlState.Normal)
}

另请阅读swift样式指南,了解变量名称和类名称的学习惯例。 https://github.com/raywenderlich/swift-style-guide

答案 3 :(得分:1)

试试这段代码,这绝对可以帮到你

@IBAction func AnswerButtonA (sender: UIButton!)
{
  sender.setTitle("Hello World", forState: UIControlState.Normal)
}

答案 4 :(得分:0)

这个也适用

(sender as AnyObject).setTitle("Un-Down", for: .normal)

答案 5 :(得分:0)

sender.title = "my text here" 

for Xcode 9.3.1