Как можно ссылаться на UITextField, созданный в методе? - PullRequest
0 голосов
/ 11 июня 2011

Я добавляю UITextFields к UITableView в методе cellForRowAtIndexPath.После того, как все настроено, мне нужно получить к ним доступ, например, я хочу, чтобы клавиатура исчезла при выборе фона, например:

- (IBAction)touchBackground:(id)sender {
  [textField resignFirstResponder];
}

, и выделите их, когда они выбраны, например:

- (void) textFieldDidBeginEditing:(UITextField *)textField {
    UITableViewCell *cell = (UITableViewCell*) [[textField superview] superview];
    [settingsTable scrollToRowAtIndexPath:[settingsTable indexPathForCell:cell] atScrollPosition:UITableViewScrollPositionTop animated:YES];
}

Однако они существуют только как временные переменные в методе, поэтому я не знаю, как ссылаться на них.Я мог бы объявить их все заранее в заголовочном файле, но я надеялся, что мне не придется этого делать, потому что для добавления других полей нужно лишь добавить массив заголовков ячеек.

1 Ответ

3 голосов
/ 11 июня 2011

Вы должны добавить переменную экземпляра с этим свойством:

@property (assign) UITextField *selectredTextField;

Затем Вы назначите выбранное поле этой переменной экземпляра

- (void) textFieldDidBeginEditing:(UITextField *)textField {
    UITableViewCell *cell = (UITableViewCell*) [[textField superview] superview];
    [settingsTable scrollToRowAtIndexPath:[settingsTable indexPathForCell:cell] atScrollPosition:UITableViewScrollPositionTop animated:YES];
    self.selectredTextField = textField;
}

теперь в вашем методе вы можете подать в отставку

- (IBAction)touchBackground:(id)sender {
  [self.selectredTextField resignFirstResponder];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...