如何从Button获取标签名称?

时间:2014-09-27 11:37:11

标签: ios swift

我是Swift的新手,我正在制作一个简单的计算器,我无法检测到按下的按钮,我的代码在下方。

 @IBAction func ButtonTapped(TheButton : UIButton){

    println(TheButton.titleLabel.text)
}

但它显示的错误如"UILabel? Does not have a member a named text"

它告诉我修改这样的代码

println(TheButton.titleLabel?.text)

此Prints Optional("1")(1是我的按钮名称)

所以任何人都可以帮助我,为什么会发生这种情况,如何在没有可选项的情况下打印我的按钮名称?

4 个答案:

答案 0 :(得分:45)

如果您确定titleLabel不是nil

println(TheButton.titleLabel!.text)

其他

if let text = TheButton.titleLabel?.text {
    println(text)
}

答案 1 :(得分:15)

更简单地说,你可以这样做:

let titleValueString = TheButton.currentTitle!

如果按钮的标题不是nil,感叹号(!)将隐式解包可选的(没有感叹号的currentTitle),并且你的常量中的按钮标题将有一个字符串值, titleValueString

答案 2 :(得分:5)

最佳答案不再适用。以下是Swift 2.2的更正版本:

如果您确定titleLabel不是nil:

print(TheButton.titleLabel!.text!)

如果你不是:

if let text = TheButton.titleLabel?.text {
    print(text)
}

答案 3 :(得分:1)

对于 Swift 5 有很多方法可以做到这一点,但最简单的就是我在下面提到的:

@IBAction func keyPressed(_ sender:UIButton){
  print(sender.currentTitle!)
}