如何在swift中从发件人修改属性?例如,如果我有一个连接到同一事件处理程序的多个按钮,我如何修改按下的按钮(比如标题)的属性?
@IBOutlet weak var grade_preK: UIButton!
@IBAction func gradeButtonPressed(sender: AnyObject) {
sender.title = "New Title"
}
此处理程序返回错误“无法在'sender'中分配给'title'”。那么,如何在事件的发送者上更改属性?
答案 0 :(得分:2)
创建时,Interface Builder可能会让您选择将sender
声明为UIButton
而不是AnyObject
(它确实有这个选项;您可能没有注意到它)。您可以选择它,或者您现在可以修复它:
@IBAction func gradeButtonPressed(sender: UIButton) {
现在sender
是正确的类型,所以你可以修改它(在Cocoa中这样做是合理的风格)。
(请注意,UIButton
实际上有一个setTitle(_ title: String?, forState state: UIControlState)
方法,而不是setTitle()
方法,因此您可能打算调用它。)