iOS 7: na textfield zmienił się pierwszy korespondent, którego aplikacja zawiesza się
Mam edytowalną komórkę tableview, a kiedy przechodzę od pierwszego pola tekstowego do ostatniego pola tekstowego w tabeli, to się zawiesza. Kod jest. Poniższy kod jest przeznaczony dla delegata textfield
-(void)textFieldDidBeginEditing:(UITextField *)sender
{
NSIndexPath *indexpath = [NSIndexPath indexPathForRow:sender.tag inSection:1];
EditableTextFieldCell *cell = (EditableTextFieldCell *)[self.documentdetailTable cellForRowAtIndexPath:indexpath];
self.actField = cell.textFieldOne;
if([self.actField canBecomeFirstResponder]){
[self.actField becomeFirstResponder];
}
}
-(BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
if (self.actField == textField) {
[self.actField resignFirstResponder];
}
return YES;
}
-(void)textFieldDidEndEditing:(UITextField*)sender
{
if (self.quantityValue !=nil)
{
[self.quantityArray replaceObjectAtIndex:[sender tag] withObject:sender.text];
[[self.documentItemsArray objectAtIndex:[sender tag]] setQUANTITY:[NSNumber numberWithDouble:[sender.text doubleValue]]];
[self.documentdetailTable reloadData];
}
}
- (BOOL)textFieldShouldClear:(UITextField *)textField {
self.quantityValue=@"";
return YES;
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
-(void)textFieldDidChange:(UITextField *)theTextField
{
NSLog( @"text changed: %@", theTextField.text);
self.quantityTextField = theTextField;
self.actField = theTextField;
}
//add the textfield listeners
[self.quantityTextField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingDidBegin];
Ale zawiesza się i otrzymuję wiadomość w stylu:
**EditableTextFieldCell _didChangeToFirstResponder:]: message sent to deallocated instance 0xc3c6bf0**