Ответ Aopsfan, вероятно, является лучшим решением на данный момент.Однако, чтобы добавить к нему (так как я не могу оставлять комментарии), не забудьте освободить объект:
- (void)textFieldDidBeginEditing:(UITextField *)textField {
if (currentTextField != nil) {
[currentTextField release];
}
currentTextField = [textField retain];
}
Лучше по-прежнему использовать @ property's и @synthesize, чтобы среда выполнения могла выполнять управление памятью за вас.
[ViewController] .h
@property (nonatomic, retain) UITextField* currentTextField;
[ViewController] .m
@synthesize currentTextField = _currentTextField;
- (void)viewDidLoad|Appear {
self.currentTextField = nil;
}
- (void) dealloc {
[_currentTextField release], _currentTextField = nil;
...
[super dealloc];
}
- (void)textFieldDidBeginEditing:(UITextField *)textField {
self.currentTextField = textField;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (self.currentTextField) {
[self.currentTextField resignFirstResponder];
}
}