swift - 快速修改发送者的属性

标签 swift sender

如何在 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/

相关文章:

ios - SceneKit:如何在没有碰撞的情况下检测接触

ios - 如何将 View 添加为 UITableViewCell 的 subview 但位于所有其他 View 之上

swift - 为 UIButton 调用发送者的方法

objective-c - 当 Action 的发送者是 UIGestureRecognizer 时引用按钮

ios - 尝试用对象推送View 的奇怪情况

swift - 使用 Swift 包管理器在单元测试中使用资源

swift - 为什么我不能选择 TableView 单元格?

json - 在Swift 3中正确解析JSON

c# - 在 Outlook 2007 C# 插件中获取安全发件人列表

c# - "object sender"和 "EventArgs e"参数有什么用?