2009-07-30 17 views
7

UITableView内のユーザーのユーザー名を編集したいとします。私はUITextFieldをUITableViewCellに追加しました。これはとてもうまく動作するようです。しかし、ユーザーが(テキストフィールドの外でも)セルに触れると、彼は編集を期待します。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]のチェックを入れたい場合もあります。既に存在している場合は、firstResponderにする必要はありません。しかし、これは必要ではないかもしれません。

関連する問題