我试图访问UITextFields的内容,当"保存"时,它会嵌套在UITableView中。按下按钮。
然而,调试(如下面进一步显示)显示我可以访问有关texfield的任何内容,除了文本 ...
无论我在按下按钮之前输入什么都没有影响......
我觉得我应该使用UITextField代表,但不要理解为什么,也不要 ......
这是我使用的代码:
@IBAction func saveNewGuestButton(sender: UIBarButtonItem) {
let entity : NSEntityDescription = NSEntityDescription.entityForName("Guest", inManagedObjectContext: self.managedObjectContext)!
// Initialize Record
let record : Guest = Guest(entity:entity, insertIntoManagedObjectContext:managedObjectContext)
// Populate Record
for i in 0..<3
{
let indexPath : NSIndexPath = NSIndexPath(forRow: i, inSection: 0)
let cell = tableView(self.tableView, cellForRowAtIndexPath: indexPath) as! newGuestProtoCell
if i==0
{
record.guestFirst = cell.newGuestFirstNameTextField.text
println("indexPath :\(indexPath), recorded : \(record.guestFirst) and TextField : \(cell.newGuestFirstNameTextField.text) + \(cell.newGuestFirstNameTextField). test : \(cell.newGuestFirstNameTextField.defaultTextAttributes) and \(cell.newGuestFirstNameTextField.attributedText) and \(cell.newGuestFirstNameTextField.placeholder) and \(cell.newGuestFirstNameTextField.tag)")
}
if i==1
{
record.guestLast = cell.newGuestLastNameTextField.text
println("indexPath :\(indexPath), recorded Last : \(record.guestLast), recorded first : \(record.guestFirst) and textfield : \(cell.newGuestLastNameTextField.text)")
//newGuest["lastName"] = cell.newGuestLastNameTextField.text
}
if i==2 && guestImage != nil
{
record.guestImage = UIImagePNGRepresentation(guestImage) as NSData
println("indexPath :\(indexPath), recorded image: \(record.guestImage.superclass) and UIImageView's image : \(cell.guestImageIV.image)")
}
}
控制台打印以下内容,证明问题不在我的tableview中,我的&#34; for&#34;循环访问它或文本字段本身(或它&#34; outlet &#34;):
indexPath: {length = 2,path = 0 - 0},记录: 和TextField:+ &gt;。 测试: [NSParagraphStyle:Alignment 0,LineSpacing 0,ParagraphSpacing 0, ParagraphSpacing在0之前,HeadIndent 0,TailIndent 0, FirstLineHeadIndent 0,LineHeight 0/0,LineHeightMultiple 0, LineBreakMode 4,Tabs( 28L, 56L, 84L, 112L, 140L, 168L, 196L, 224L, 252L, 280L, 308L, 336L),DefaultTabInterval 0,Blocks(null),Lists(null),BaseWritingDirection -1,HyphenationFactor 0,TighteningFactor 0, HeaderLevel 0,NSShadow:NSShadow {0,-1} color = {(null)},NSFont: 字体系列: &#34; .HelveticaNeueInterface-经常&#34 ;; font-weight:normal;字体样式: 正常; font-size:14.00pt,NSColor:UIDeviceRGBColorSpace 0 0 0 1] 和Optional()和Optional(&#34; First Name&#34;)和0 indexPath :{length = 2,path = 0 - 1}, 录制最后:,首先录制:和textfield:indexPath :{length = 2,path = 0 - 2}, 录制的图像:可选(NSMutableData)和UIImageView的图像: 可选(大小{1500,1001}方向0 比例1.000000)
答案 0 :(得分:0)
通过阅读你的代码,你做错了:
let cell = tableView(self.tableView, cellForRowAtIndexPath: indexPath) as! newGuestProtoCell
cellForRowAtIndexPath用于准备视图以显示它。因此,它应该清除您输入的内容,并填写正确记录的内容。 (indexpath处的记录)。然后你应该得到一个textview文本为null的视图。
关于如何获取值,您可以使用确切的方法设置委托UITextFieldDelegate。 tableView(self.tableView,cellForRowAtIndexPath:indexPath)。