Ich habe mehrere Zeilen in meiner Tabellenansicht, die jeweils eine Instanz meiner benutzerdefinierten Zellenklasse sind, die ein einzelnes UTextField enthält. Ich habe für jedes ein Tag zugewiesen, aber ich muss wissen, wie man jeden Textfeldtextwert abruft und die Werte den passenden Zeichenketten zuweist.Abrufen von Text aus dem Textfeld in der Tabellenansicht Zelle
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
}
Ich kann dies tun, aber es scheint nicht, wie die beste Option.
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
}
Ich bin mir nicht sicher, was Sie fragen. – Alexander