2015-02-12 38 views
2

我是编程新手,请牢记这一点。我已经看过这个网站上的其他几个问题,并尝试了他们给出的答案,但这些都不适合我。该代码我试图用改变按钮是这样的:单击按钮时如何更改按钮的文本? - 斯威夫特

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

这是为了做到这一点,最常用的方法我已经找到,但它带来了一些错误,“预期声明”“预期的属性名称”“预计“”分隔符,和其他几个人

另一件事我想,其他人则建议是:

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

这个问题,以及一些其他的东西我已经尝试了所有弹出错误“” (UIButton) - >()'没有名为'setTitle'的成员。

我意识到这可能是一个愚蠢的问题,但我无法弄清楚。这是我尝试自行开发的第一个应用程序,在这个问题之前我已经做得很好。任何帮助,将不胜感激,如果你能详细说明我做错了什么,那将是惊人的!

(我只想按钮时按下它,而不是当风景被改变。)

+1

什么是'AnswerButtonA'? – 2015-02-12 03:48:29

回答

23

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

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

在这两个例子中,正如Jeremy Pope指出的那样,您指的是AnswerButtonA作为方法,而不是按钮。

您需要为您的按钮创建一个插座(或使用,如在Jeremy的答案中)。

从这里,这里就是你要找的内容:

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

方法签名会弹出你输入:

enter image description here

+0

谢谢这么多!我没有想到在阅读的答案中能够快速区分Objective-C,我将来一定会记住这一点!这工作完美!谢谢!! – Jaxon 2015-02-12 15:52:31

+1

很好的答案,既有资源和气质。 – 2016-10-26 23:00:55

2

你可以试试这个

@IBOutlet answerButtonA : UIButton! 

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

而且阅读的学习公约迅速风格指南变量名称和类名称。 https://github.com/raywenderlich/swift-style-guide

+1

如果将操作设置为发送按钮作为参数,则不需要为其创建@IBOutlet。或者,如果您要使用插座,请将操作设置为不发送任何内容。 – 2015-02-12 04:06:42

0

试试这个代码,这肯定有助于你

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

被按下的按钮正在发送一个这是一个叫做发件人的论据AnswerButtonA是你创建的方法。只是一个样式说明,通常第一个字母是小写的方法。再次,AnswerButtonA是单击按钮时调用的方法,sender是单击的实际按钮。

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

这一个工程,以及

(sender as AnyObject).setTitle("Un-Down", for: .normal) 
相关问题