2009-07-30 55 views
7

我想在UITableView中编辑用户的用户名。我向UITableViewCell添加了一个UITextField,这似乎很好地工作。但是当用户触摸单元格(甚至在文本框外)时,他希望编辑。如何选择UITextField?

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

的代码看起来是这样的:

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

回答

14
- (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] - 如果它已经是第一个响应者,没有意义。虽然这可能不是必要的。