gpt4 book ai didi

ios - 从 TableView 单元格内的文本字段获取文本

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:00:43 25 4
gpt4 key购买 nike

我的 TableView 中有几行,每一行都是包含单个 UTextField 的自定义单元格类的实例。我已经为每个分配了一个标签,但我需要知道如何检索每个文本字段文本值并将这些值分配给适当的字符串。

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("paymentCell", forIndexPath: indexPath) as! PaymentInfoCell

cell.selectionStyle = .None
cell.textField.delegate = self

if indexPath.section == 0 {
cell.textField.keyboardType = .NumberPad

switch indexPath.row {
case 0:
cell.textField.placeholder = "Card Number"
cell.textField.tag = 0
case 1:
cell.textField.placeholder = "Security Code"
cell.textField.tag = 1
case 2:
cell.textField.placeholder = "Expiration Month"
cell.textField.tag = 2
case 3:
cell.textField.placeholder = "Expiration Year"
cell.textField.tag = 3
default:
break
}
} else {
switch indexPath.row {
case 0:
cell.textField.placeholder = "First Name"
cell.textField.keyboardType = .Default
cell.textField.tag = 4

if let firstName = sharedUser.userJSON!["firstName"] {
cell.textField.text = firstName as? String
}
case 1:
cell.textField.placeholder = "Last Name"
cell.textField.keyboardType = .Default
cell.textField.tag = 5

if let lastName = sharedUser.userJSON!["lastName"] {
cell.textField.text = lastName as? String
}
case 2:
cell.textField.placeholder = "Phone Number"
cell.textField.keyboardType = .PhonePad
cell.textField.tag = 6
case 3:
cell.textField.placeholder = "Address"
cell.textField.keyboardType = .EmailAddress
cell.textField.tag = 7
case 4:
cell.textField.placeholder = "City"
cell.textField.keyboardType = .Default
cell.textField.tag = 8
case 5:
cell.textField.placeholder = "State"
cell.textField.keyboardType = .Default
cell.textField.tag = 9
case 6:
cell.textField.placeholder = "Zip Code"
cell.textField.keyboardType = .NumberPad
cell.textField.tag = 10
default:
break
}
}

return cell
}

我可以做到,但这似乎不是最佳选择。

func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()

switch textField.tag {
case 0:
self.cardNumber = textField.text!
case 1:
self.securityCode = textField.text!
case 2:
self.expMonth = textField.text!
case 3:
self.expYear = textField.text!
case 4:
self.firstName = textField.text!
case 5:
self.lastName = textField.text!
case 6:
self.phoneNumber = textField.text!
case 7:
self.address = textField.text!
case 8:
self.city = textField.text!
case 9:
self.state = textField.text!
case 10:
self.zipCode = textField.text!
default:
break
}

return true
}

最佳答案

您可以像这样简单地创建一个占位符数组

let placeholders = ["Card Number", "Security Name", ...]

然后你可以使用这段不那么冗余的代码

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("paymentCell", forIndexPath: indexPath) as! PaymentInfoCell

cell.selectionStyle = .None
cell.textField.delegate = self
let index = indexPath.row + indexPath.section*6 //calculates the index of the text in the array
cell.textField.placeholder = placeholders[index]
cell.textField.tag = index

if indexPath.section == 0 {
cell.textField.keyboardType = .NumberPad
} else {
if indexPath.row == 0 {
if let firstName = sharedUser.userJSON!["firstName"] {
cell.textField.text = firstName as? String
}
} else if indexPath.row == 1 {
if let lastName = sharedUser.userJSON!["lastName"] {
cell.textField.text = lastName as? String
}
}
}
return cell
}

你可以对你的变量做同样的事情,把它们放在一个数组中然后说

variable[textField.tag] = textField.text!

关于ios - 从 TableView 单元格内的文本字段获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37058428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com