質問

UITableView内でユーザーのユーザー名を編集したい。 UITableViewCellにUITextFieldを追加しましたが、これは非常にうまく機能しているようです。ただし、ユーザーがセルにタッチすると(テキストフィールドの外でも)、編集することが期待されます。

テキストフィールドをプログラムで選択するにはどうすればよいですか

コードは次のようになります。

- (void)tableView:(UITableView *)tableView 
didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
userName.selected = TRUE;
}
役に立ちましたか?

解決

- (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にすることは意味がありません。ただし、これは必要ない場合があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top