は認識していますが、実際に-[UITableViewDelegate tableView:willDisplayCell:forRowAtIndexPath:]いつ表示されたのか知りたいです。UITableViewCell
UITextFieldの中に があり、 (したがって) が実際に表示されるまでUITableViewCell呼び出すことはできません。-[UIResponder becomeFirstResponder]UITableViewCellUITextField
これまでのところ、私はこれを行うことができますが、それはハックです:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
if ([indexPath isEqual:self.textFieldIndexPath]) {
dispatch_async(dispatch_get_main_queue(), ^{
[self.textField becomeFirstResponder];
});
}
}
のオーバーライドも試しましたが、最初にが に追加された-[UITableViewCell didMoveToSuperview]ときにのみ呼び出されます。が(バッキング データが変更されたため) 再度追加された場合 (バッキング データが再度変更されたため)は呼び出されません。UITableViewCellUITableViewUITableViewCell-[UITableViewCell didMoveToSuperview]UITableViewUITableViewCells