如何使用用户输入将单词添加到列表中

时间:2021-04-29 09:22:39

标签: swift

你好这个应用程序在文本字段中接受用户输入,当按下按钮时,它会在屏幕上显示单词。当我尝试在列表中添加一个新词时,我的旧词条会被新词条删除。我怎么能不删除东西而只保留我的所有数据..谢谢!

导入 UIKit

class ViewController: UIViewController {

@IBOutlet weak var textLabel: UITextField!
@IBOutlet weak var label: UILabel!
override func viewDidLoad() {
    super.viewDidLoad()
    textLabel.becomeFirstResponder()
    
}


@IBAction func button(_ sender: Any) {
    
    label.text = textLabel.text
    textLabel.text = ""
    
}

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    textLabel.resignFirstResponder()
}

}

2 个答案:

答案 0 :(得分:0)

解决此问题的正确方法是拥有一个包含单词列表的数据源,而不是尝试将单词直接从一个 UI 组件移动到另一个组件。为此,我们可以使用 String 属性或 Array (of String) 属性。我将使用一个数组。

var words = [String]()

然后在您的 button 函数中使用它

@IBAction func button(_ sender: Any) {
    //Check that the user has actually entered something otherwise exit
    guard let newWord = textLabel.text, !newWord.isEmpty else { return }

    //Add the new word to the data source
    words.append(newWord)

    //Generate a new list of words from the data source
    label.text = words.joined(separator: ", ")

    textLabel.text = ""  
}

答案 1 :(得分:0)

您可以通过两种不同的方式来做到这一点。

1:您将结果存储在一个数组中,例如:

words.append(textLabel.text)

然后:label.text = words.joined(by: ", ")

2:直接添加

label.text = label.text + ", " + textLabel.text