我有一个UITableView
with 部分,当您点击一个部分时,该部分会展开并且有可供选择的选项,或者您可以通过UITextField
其中一个中的a 插入您自己的选项UITableViewCells
。对于那个单元格,我有这段代码tableView: cellForRowAtIndexPath:
来配置自定义单元格并设置第一响应者。
DataAddTVCell *dataInputcell = (DataAddTVCell *)cell;
dataInputcell.data.delegate = self;
self.dataTextfield = dataInputcell.data;
[self.dataTextfield becomeFirstResponder];
数据字段是UITextField
. 我保存UITextField
在 self.dataTextField 中,以便resignFirstResponder
以后可以。
第一次DataAddTVCell
从我的部分加载和扩展时,它工作正常并成为第一响应者。辞去第一响应者的职务也有效。但是,当另一个部分展开时再次加载单元格时,它不会成为第一响应者。如果我点击textField
,键盘显示正常,我可以像以前一样让第一响应者辞职。不知道为什么 textField 只能成为第一响应者一次。我也有这些委托方法并设置了 < UITextFieldDelegate
>
- (BOOL)canBecomeFirstResponder
{
return YES;
}
- (BOOL)becomeFirstResponder
{
return YES;
}
我怀疑这是因为我正在使用dequeueReusableCellWithIdentifier
. 有没有办法让它在使用它时工作?或者,如果我希望它在显示时始终成为第一响应者,我是否每次都必须创建一个新单元格?不过,总是创建这么多细胞似乎很糟糕。