我是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是我的按钮名称)
所以任何人都可以帮助我,为什么会发生这种情况,如何在没有可选项的情况下打印我的按钮名称?
答案 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!)
}