我想在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;
}
}
答案 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];
添加单元格。稍后在标记的帮助下访问它。