UITextFieldを選択する方法は?
-
05-07-2019 - |
質問
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にすることは意味がありません。ただし、これは必要ない場合があります。
所属していません StackOverflow