7

我想在 UITableView 中编辑用户的用户名。我向 UITableViewCell 添加了一个 UITextField ,这似乎工作得很好。但是当用户触摸单元格(甚至在文本字段之外)时,他希望进行编辑。

如何以编程方式选择文本字段?

代码看起来像:

- (void)tableView:(UITableView *)tableView 
didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
userName.selected = TRUE;
}
4

1 回答 1

15
- (void)tableView:(UITableView *)tableView 
didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{
   UITableViewCell *cellSelected = [tableView cellForRowAtIndexPath: indexPath];
   UITextField *textField = [[cellSelected.contentView subviews] objectAtIndex: 0];
   [textField becomeFirstResponder];

   [tableView deselectRowAtIndexPath: indexPath animated: NO];

}

这假设您没有更快的方法来知道哪个 UITextField 对象在哪个单元格中,并且您确定 UITextField 将是第一个子视图。

您可能还想检查 [textField isFirstResponder] - 如果它已经是 firstResponder 则没有意义。不过,这可能不是必需的。

于 2009-07-30T15:04:46.270 回答