ios - 如何在 Swift 3.0 中获取按钮的当前标题,ios 使用 sender.titleForState(.Normal)!

标签 ios uibutton swift3 title

我尝试像下面这样快速获取 buttontitle

@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/

相关文章:

ios - swift 3 在tableView 中按下了哪个单元格按钮

ios - 使用约束条件时按钮的角不保持圆角

ios - 如何从 iOS Swift 3 的键盘上删除更改语言键按钮

ios - 如何等待给定时间来运行操作 - SWIFT

ios - 如何只读取一次文件数量?

ios - 如何从字符串转换为整数

ios - 当我使用 pod 将 dropbox 与 pod 集成时,出现错误,因为 SFSafariViewController 没有使用 Swift 3 的成员函数

ios - 在 Swift 中,如何检测 UITextView 中空格键的双击?

swift - 如何创建影响所有或特定 UIButton 实例类型的全局函数?

swift - 强制UILabel占用3行