他の多くのユーザと同様に、UITextFieldをUITableViewCellにスローして行を編集するように設定しようとしています。しかし、新しいビューを追加する代わりに、私はaccessoryViewプロパティを使用しようとしています。最初に私は...UITextFieldがアクセサリビューでUITableViewCellに追加された場合、最初のレスポンダになることができない
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITextField *textField =[[UITextField alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 200.0f, 44.0f)];
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
cell.accessoryView = textField;
[textField becomeFirstResponder];
}
これを試してみました...で、UITextFieldが正しく追加されますが、私はキーボードを表示するために取得するためにそれを再度タップする必要があります。私はそれが動作します...
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITextField *textField =[[UITextField alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 200.0f, 44.0f)];
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
[cell addSubview:textField];
[textField becomeFirstResponder];
}
...これを行う場合は、キーボードが現れますが、私はaccessoryViewとしてそれを持つことの他の利点のいずれか(移動する他のビューで簡単にポジショニング得ることはありませんその周りに)。私はaddSubview:呼び出しがレスポンダーチェーンや何かを変更して、私のUITextFieldを最初のレスポンダーにすることを許可していると思いますが、これを行うための別の方法が考えられました。ありがとう。
こんにちはEmon、私は実際にキーボードを表示することもできませんでした。しかし、はい、私はキーボードを却下するために同様のものを使用しています。 – rob5408