セクションを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
ます。これを使用しながら動作させる方法はありますか?または、表示されたときに常にファーストレスポンダーにしたい場合は、毎回新しいセルを作成する必要がありますか? ただし、常に非常に多くのセルを作成するのはかなり悪いようです。