2017-09-16 12 views
1

Ich entwickle IOS Application.to Textfield Wert auf Schaltfläche klicken in TableViewCell. Ich kann Index des Knopfes erhalten und zu TableViewCell und als Zelle übergeben, um Textfield.and Text vom Textfeld zu erhalten, um (Null) Text zu erhalten. Aber ist ein Problem. Bitte helfen Sie im Voraus.Get Textfeld Wert auf Schaltfläche Klicken Sie in der Tabellenansicht

//Tableviewcell create textfield 

_quantity = [[UITextField alloc]initWithFrame:CGRectMake(770.0f, 10.0f,80.0f, 30.0f)]; 
[_quantity setFont:[UIFont systemFontOfSize:15.0f]]; 
_quantity.delegate =self; 
[_quantity.layer setBorderColor: [[UIColor blackColor] CGColor]]; 
[_quantity.layer setBorderWidth: 1.0]; 
_quantity.textAlignment = NSTextAlignmentCenter; 
_quantity.tag = indexPath.row; 
_quantity.text = obj.productQuantity; 
_quantity.leftViewMode = UITextFieldViewModeAlways; 
[_quantity setAdjustsFontSizeToFitWidth:YES]; 
[cell addSubview:_quantity]; 

_quantitySave = [[UIButton alloc]initWithFrame:CGRectMake(770.0f, 45.0f,80.0f, 20.0f)]; 
_quantitySave.tag = indexPath.row; 
[_quantitySave.layer setCornerRadius:4.0f]; 
[_quantitySave.layer setBorderColor: [[UIColor blackColor] CGColor]]; 
[_quantitySave.layer setBorderWidth: 1.0]; 
_quantitySave.tintColor = [UIColor blackColor]; 
[_quantitySave setTitle:@"Delete" forState:UIControlStateNormal]; 
[_quantitySave addTarget:self action:@selector(saveQuantity:) forControlEvents:UIControlEventTouchDown]; 
[cell addSubview:_quantitySave]; 

-(IBAction)saveQuantity:(id)sender{ 
    UIButton *button = (UIButton*)sender; 
    NSInteger index = button.tag; 

    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:index inSection:0]]; 
    UITextField *textField = (UITextField *)[cell viewWithTag:index]; 
    NSLog(@"%@",textField.text); 
} 
+0

Sie haben das Button-Tag nicht im 'cellForRowAtIndexPath'-Delegaten festgelegt. Es sollte 'yourButton.tag = indexPath.row' sein. – Torongo

+0

ja, ich bin Button Index –

+0

gesetzt Ihre Schaltfläche ist in jeder Zelle? oder hast du nur einen Knopf? – Torongo

Antwort

1

Sie fügen Tag in Ihrem UITextField als _quantity.tag = indexPath.row; und bekommen Index von button.tag, die Sie noch nicht festgelegt haben. Sie sollten tag in Ihrer Schaltfläche hinzufügen.

_quantity = [[UITextField alloc]initWithFrame:CGRectMake(770.0f, 10.0f,80.0f, 30.0f)]; 
    [_quantity setFont:[UIFont systemFontOfSize:15.0f]]; 
    _quantity.delegate =self; 
    [_quantity.layer setBorderColor: [[UIColor blackColor] CGColor]]; 
    [_quantity.layer setBorderWidth: 1.0]; 
    _quantity.textAlignment = NSTextAlignmentCenter; 
    //_quantity.tag = indexPath.row; 
    yourButtonObject.tag = indexPath.row 
    _quantity.text = obj.productQuantity; 
    _quantity.leftViewMode = UITextFieldViewModeAlways; 
    [_quantity setAdjustsFontSizeToFitWidth:YES]; 
    [cell addSubview:_quantity]; 


-(IBAction)saveQuantity:(id)sender{ 
UIButton *button = (UIButton*)sender; 
NSInteger index = button.tag; 

UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:index inSection:0]]; 
UITextField *textField = (UITextField *)[cell viewWithTag:index]; 
NSLog(@"%@",textField.text); 
+0

Nicht funktioniert es wieder (null) .. Ein weiteres Problem ist, dass wenn Scroll-Tabellenansicht Wert jedes Textfelds der Tabellenansicht Zelle ändern. –

+2

Warum verwenden Sie keine benutzerdefinierte 'UITableViewCell' Klasse und ein' UITextField' und 'UIButton' darauf. Sie ordnen 'UITextField' jedes Mal zu, wenn die Zelle das Problem löst, das hier entsteht. – Torongo

0

Um eine editierbare UITableViewCell in eleganter Art und Weise, testen Sie bitte folgende Bild zu erstellen dies wird Ihnen den gesamten Code benötigt, um eine Tableview Zelle, die done Aktion und Druck ausgewählte Zelle Textfeld Text reagieren zu erstellen.

enter image description here

werde ich Code hinzufügen, sobald ich, warum meine git Konto herausgefunden haben nicht funktioniert.

Verwandte Themen