Работа с текстовыми полями в UITableView - PullRequest
0 голосов
/ 26 июля 2010

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

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];

        UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 130, 25)];
        label.textAlignment = UITextAlignmentRight;
        label.tag = kLabelTag;
        [cell.contentView addSubview:label];
        [label release];

        UITextField *theTextField = [[UITextField alloc] initWithFrame:CGRectMake(150, 10, 140, 25)];
        theTextField.tag = kTextFieldTag;
        theTextField.delegate = self;
        [cell.contentView addSubview:theTextField];
        [theTextField release];

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

1) Вы можете видеть, что я установил делегат текстового поля равным себе. Класс, в котором это выполняется, реализует UITextFieldDelegate, но textFieldShouldEndEditing не запускается.

2) Как я могу реально сохранить то, что пользователь помещает в память. Другими словами, возможно ли узнать, какое текстовое поле выбрал пользователь в настоящее время, чтобы я мог перейти [myArray getObjectAtIndex:blah] и редактировать фактические данные.

Спасибо

1 Ответ

0 голосов
/ 27 июля 2010

1) Вызываются ли другие методы делегата?

2) Например, вы можете установить атрибут tag в каждом текстовом поле, чтобы идентифицировать их, и использовать его в качестве индекса в массиве.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...