2009-07-30 56 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] - 如果它已經是第一個響應者,沒有意義。雖然這可能不是必要的。