如何在 swift 中从发送者那里修改属性?例如,如果我有多个按钮连接到同一个事件处理程序,如何修改按下的按钮的属性(例如标题)?
@IBOutlet weak var grade_preK: UIButton!
@IBAction func gradeButtonPressed(sender: AnyObject) {
sender.title = "New Title"
}
此处的处理程序返回错误“无法分配给‘sender’中的‘title’”。那么,如何更改事件发送者的属性呢?
最佳答案
当您创建它时,Interface Builder 可能会为您提供将 sender
声明为 UIButton
而不是 AnyObject
的选项(它确实具有那个选项;你可能没有注意到它)。您可以选择它,或者您现在可以修复它:
@IBAction func gradeButtonPressed(sender: UIButton) {
现在 sender
的类型正确,因此您可以修改它(在 Cocoa 中这样做是合理的风格)。
(请注意,UIButton
实际上有一个 setTitle(_ title: String?, forState state: UIControlState)
方法,而不是 setTitle()
方法,所以这就是您可能想要调用的方法。)
关于swift - 快速修改发送者的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26290078/