单击按钮时如何更改按钮的文本? - Swift

How do I change the text of a button when it is clicked? - Swift

我是编程新手,所以请记住这一点。我查看了该站点上的其他几个问题,并尝试了他们提供的答案,但这些对我没有用。我试图用来将按钮更改为的代码是:

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

这是我发现的最常用的方法,但它会引发一些错误 "Expected declaration" "Expected attribute name"“预期的‘、’分隔符和其他一些错误。

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

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

这以及我尝试过的其他一些事情都会引发错误“'(UIButton) ->()' 没有名为 'setTitle'.

的成员

我意识到这可能是一个愚蠢的问题,但我想不通。这是我尝试自己开发的第一个应用程序,在出现这个问题之前我都做得很好。任何帮助将不胜感激,如果你能详细说明我做错了什么,那就太棒了!

(我只希望按钮在按下时发生变化,而不是在加载视图时发生变化。)

你可以试试这个

@IBOutlet  answerButtonA : UIButton!

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

另请阅读 swift 风格指南,了解变量名称和 class 名称的学习约定。 https://github.com/raywenderlich/swift-style-guide

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

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

在这两种情况下,正如 Jeremy Pope 指出的那样,您指的是 AnswerButtonA 作为方法,而不是按钮。

您需要为您的按钮创建一个出口(或使用 Jeremy 的回答中的 sender)。

从那里开始,这就是您要查找的内容:

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

方法签名将在您键入时弹出:

试试这个代码,这绝对对你有帮助

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

按下的按钮作为一个名为 sender 的参数发送。 AnswerButtonA 是您创建的方法。只是一个样式说明,通常方法的第一个字母是小写的。同样,AnswerButtonA 是单击按钮时调用的方法,sender 是实际单击的按钮。

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

这个也可以

(sender as AnyObject).setTitle("Un-Down", for: .normal)
sender.title = "my text here" 

对于 Xcode 9.3.1