【发布时间】:2021-09-01 19:45:08
【问题描述】:
我有一个作业,我必须从 TextField 获取用户输入,检查它是否不为零,然后在 Label 中显示它。当用户输入新文本时,它应该显示在相同的标签中,在旧文本旁边(用空格分隔)。我不能使用数组。 我试图做 += 的事情,但它只显示最新的输入,没有以前的。
@IBOutlet weak var textTextField: UITextField!
@IBOutlet weak var textLabel: UILabel!
@IBAction func type(_ sender: Any) {
var text:String = ""
var newText:String = ""
if textTextField.text != nil {
newText = textTextField.text!
text += newText
textLabel.text = "\(text)"
textTextField.text = nil
}
我在哪里犯错了? 最后它应该看起来像这样 screen interface example from my professor
【问题讨论】:
-
您确定要
textTextField.text = nil吗?是要清除文字吗? -
只需将
text的声明移到函数之外,使其成为类属性。然后它将在函数调用之间保留新值 -
将
UITextField的text属性设置为nil是不好的做法。根据文档,它永远不是nil——不像UILabel。默认值为空字符串 -
@vadian 是的。我也正要评论。值得一提的是,对于 UILabel text 属性,情况并非如此。