在swift中修改发件人的属性

时间:2014-10-10 00:27:10

标签: swift sender

如何在swift中从发件人修改属性?例如,如果我有一个连接到同一事件处理程序的多个按钮,我如何修改按下的按钮(比如标题)的属性?

@IBOutlet weak var grade_preK: UIButton!

@IBAction func gradeButtonPressed(sender: AnyObject) {
    sender.title = "New Title"  
}

此处理程序返回错误“无法在'sender'中分配给'title'”。那么,如何在事件的发送者上更改属性?

1 个答案:

答案 0 :(得分:2)

创建时,Interface Builder可能会让您选择将sender声明为UIButton而不是AnyObject(它确实有这个选项;您可能没有注意到它)。您可以选择它,或者您现在可以修复它:

@IBAction func gradeButtonPressed(sender: UIButton) {

现在sender是正确的类型,所以你可以修改它(在Cocoa中这样做是合理的风格)。

(请注意,UIButton实际上有一个setTitle(_ title: String?, forState state: UIControlState)方法,而不是setTitle()方法,因此您可能打算调用它。)