【问题标题】:How to combine the information from 4 UITextfields into one UILabel如何将 4 个 UITextfields 的信息合并到一个 UILabel 中
【发布时间】:2018-07-17 23:51:12
【问题描述】:

我在一页上有 4 个文本字段,我想让它们显示在一个标签上。我的应用程序会询问用户他们的街道、城市、国家和邮政编码。对于每个输入,都有一个文本字段。

如何让这些文本字段的信息显示在另一个页面上的单个标签中?

我让用户输入他们的街道、城市、国家和邮政编码。

然后我将其显示在标签中:(123 street city, USA 12345)。

【问题讨论】:

  • 您在这个过程的哪一部分特别需要帮助?你有什么问题?
  • 我无法将用户输入的文本字段中的信息显示到标签中。
  • 这并不比您在问题中提出的更具体。你知道如何获取文本字段的值吗?你知道如何从多个值创建一个字符串吗?你知道如何更新标签的文本吗?您需要哪些细节方面的帮助? Edit您的问题(不要发布 cmets)以及相关详细信息。

标签: ios swift uitextfield uilabel


【解决方案1】:

我们可以抓取他们的每一个文本并使用转义符将它们放在一个字符串中。这是您的问题的解决方案,其中每个对象的名称很可能必须更改:

textFieldStreet.text = "123 Street"
textFieldCity.text = "Townsville"
textFieldCountry.text = "USA"
textFieldPostal.text = "12345"

let finalText = "\(textFieldStreet.text!), \(textFieldCity.text!), \(textFieldCountry.text!) \(textFieldPostal.text!)"

outputLabel.text = finalText // This results in "123 Street, Townsville, USA 12345"

只需将每个 UITextField(textFieldStreet 等)的名称替换为您的文本字段的名称,并将“outputLabel”替换为您的输出标签的名称!

【讨论】:

  • 唯一的问题是它有固定的值。我希望用户输入这些值
  • @SamiRehman 'textFieldStreet.text' 行只是示例!如果您希望用户输入这些值,您必须创建一个从 ViewController.swift 到 Storyboard 中每个 UITextField 的引用连接。然后,您只需使用这些 UITextField 名称代替“textFieldCity”等。Jlopesoares 的回答也将提供比强制展开更好的选择(谢谢!),我的回答将为您提供一种组合所有输入文本的方法。
【解决方案2】:

首先,您应该对每个 TextField 都有一个引用。

@IBOutlet var streetTextField: UITextField!
@IBOutlet var cityTextField: UITextField!
@IBOutlet var countryTextField: UITextField!
@IBOutlet var postalCodeTextField: UITextField!

其次,由于您希望用户编写每个信息,因此您应该保护您的应用程序避免强制解包。

if let streetName = streetTextField.text {
   //if streetName gets value from the streetTextField it should add that info to the label
   addressLabel.text.append(streetName)
}

对每个文本字段重复该过程。 有很多选项可以实现您的需要,但我相信这是最简单的选项之一。

【讨论】:

  • 我可以将它附加到文本字段而不是标签吗?谢谢你的帮助:)))
  • 我还有一个 IBAction 完成按钮,其中包含:@IBAction func done() { if let itemToEdit = itemToEdit { itemToEdit.text = postalCode.text!委托?.itemDetailViewController(self, didFinishEditing: itemToEdit) } else { let item = ChecklistItem() item.text = postalCode.text! item.checked = false 委托?.itemDetailViewController(self, didFinishAdding: item) } }
  • 那么我会将这段代码放入完成按钮还是 super.viewDidLoad
  • 是的,您可以将其附加到 .text 属性的文本字段中。 Append 它是来自 Stringclass 的函数。 Sou 你可以将append 之类的stringscharacters 转换为另一个字符串。我建议的答案首先我会放在 done 函数上。按下完成按钮后,获取文本字段值并将它们放在标签上。
  • 要不要删除done函数中的if和else语句,换成你说的if语句??
猜你喜欢
  • 2022-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-31
  • 2020-03-21
  • 2020-06-13
  • 2022-11-03
相关资源
最近更新 更多