【发布时间】:2016-02-07 01:46:21
【问题描述】:
我正在为我的letterTapped() 函数的 UIButton 添加一个目标,如下所示:
button.addTarget(self, action: "letterTapped:", forControlEvents: .TouchUpInside)
我喜欢.TouchUpInside 与自动补全一起工作的方式,它看起来比我应该用于action: 参数的字符串更简洁、更安全。所以我搜索并发现this tutorial 使用枚举来替换“魔术字符串”。
我创建了一个这样的枚举:
enum functionForAction: Selector {
case clearTapped = "clearTapped:"
case submitTapped = "submitTapped:"
case letterTapped = "letterTapped:"
}
然后我这样使用它:
button.addTarget(self, action: functionForAction.letterTapped.rawValue, forControlEvents: .TouchUpInside)
我得到了代码完成,我从不尝试调用拼写错误的选择器。感觉好多了。但是有可能改善吗?我真的很想输入这个:
button.addTarget(self, action: .letterTapped, forControlEvents: .TouchUpInside)
枚举可以在 Swift 中为我实现这一点吗?
【问题讨论】:
标签: swift enums uibutton selector addtarget