セクションをUITableViewタップすると、セクションが展開され、選択できるオプションが表示されるか、いずれかの を介して独自のオプションを挿入できUITextFieldますUITableViewCells。そのセルにはtableView: cellForRowAtIndexPath:、カスタム セルを構成してファーストレスポンダーを設定するためのコードが含まれています。
DataAddTVCell *dataInputcell = (DataAddTVCell *)cell;
dataInputcell.data.delegate = self;
self.dataTextfield = dataInputcell.data;
[self.dataTextfield becomeFirstResponder];
データ フィールドはUITextField. UITextField後でできるように、self.dataTextFieldに保存しresignFirstResponderます。
myDataAddTVCellが最初に読み込まれて展開されたセクションでは、正常に動作し、ファーストレスポンダーになります。ファーストレスポンダーとしての辞任も機能します。ただし、別のセクションが展開されたときにセルが再度読み込まれると、ファーストレスポンダーにはなりません。をタップするtextFieldと、キーボードが正常に表示され、以前と同じ方法でファーストレスポンダを辞任できます。textField が最初のレスポンダーに一度しかなれない理由がわかりません。これらのデリゲート メソッドもあり、< UITextFieldDelegate>を設定しました
- (BOOL)canBecomeFirstResponder
{
return YES;
}
- (BOOL)becomeFirstResponder
{
return YES;
}
を使用しているため、これが起こっているのではないかと疑っていdequeueReusableCellWithIdentifierます。これを使用しながら動作させる方法はありますか?または、表示されたときに常にファーストレスポンダーにしたい場合は、毎回新しいセルを作成する必要がありますか? ただし、常に非常に多くのセルを作成するのはかなり悪いようです。