如何在iPhone上的单元格上给出文本字段

时间:2012-01-10 09:47:25

标签: iphone objective-c

我想在tableviewcell上给出textfield我写了一些代码,因为我可以在单元格上看到文本字段,但是当我进入下一个单元格然后我的值是消失的,如何给出单元键盘disapper请检查我在单元格上写的代码,请帮我解决如何从键盘中消除键盘的问题。

我想只给出一行而不是所有行的文本字段。

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

    static NSString *CellIdentifier = @"Cell";

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

    if ([indexPath row] == 0 && [indexPath section] == 0)
    {
    cell.textLabel.text=@"Tags";
        UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 185, 30)];
        cell.accessoryView = textField;

    }

    if ([indexPath row] == 1 && [indexPath section] == 0)
    {
         cell.textLabel.text=@"Notes";
        cell.detailTextLabel.text=app.Notes;
        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    }
}

4 个答案:

答案 0 :(得分:0)

要解除键盘,您的类应符合UITextFieldDelegate协议 你应该实现这个方法:

- (BOOL)textFieldShouldReturn:(UITextField *)txtField {
    [txtField resignFirstResponder];
    return YES;
}

答案 1 :(得分:0)

当您的UITableView决定重新查询您的单元格时,您的值会消失。

看看你做了什么:用一个新的UITextField创建一个 new 单元格 - 因为是新的 - 不包含任何值。那么你的旧单元格(以及它的值)就丢失了。

答案 2 :(得分:0)

隐藏键盘'beryllium'& 'Stas'是正确的。要保存textField的文本,请将文本存储在textFieldDidEndEditing方法中,如下所示:

- (void)textFieldDidEndEditing:(UITextField *)textField
{
    nameString = textField.text;
}

在初始化textField后,在cellForRowAtIndexPath方法中将textField的文本设置为textField.text = nameString

答案 3 :(得分:0)

你可以为此做一件事设置标签。并在没有accessoryView的情况下直接添加到单元格上。使用[cell addSubview:textField];添加单元格。稍后在标记的帮助下访问它。