我尝试像下面这样快速获取 button
的 title
。
@IBAction func buttonAction(_ sender: Any) {
let buttonTitle = sender.titleForState(.Normal)!
}
但它没有用,即使我们在发送者之后按 .
时它也没有给出任何提示
。
so what is the correct way of doing this in swift 3.0
否则,如果我们创建一个 IBOutlet
,然后使用它的 currentTitle
,它会像下面这样正常工作。为什么我们不能通过 sender.
获取它
@IBOutlet var thebutton: UIButton!
@IBAction func buttonAction(_ sender: Any) {
let buttonTitle = thebutton.currentTitle!
print(buttonTitle)
}
最佳答案
因为参数 sender 的类型是 Any
而不是 UIButton
。将方法签名更改为:
@IBAction func buttonAction(_ sender: UIButton) {
if let buttonTitle = sender.title(for: .normal) {
print(buttonTitle)
}
}
你应该可以开始了。
关于ios - 如何在 Swift 3.0 中获取按钮的当前标题,ios 使用 sender.titleForState(.Normal)!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40073738/