は認識していますが、実際に-[UITableViewDelegate tableView:willDisplayCell:forRowAtIndexPath:]
いつ表示されたのか知りたいです。UITableViewCell
UITextField
の中に があり、 (したがって) が実際に表示されるまでUITableViewCell
呼び出すことはできません。-[UIResponder becomeFirstResponder]
UITableViewCell
UITextField
これまでのところ、私はこれを行うことができますが、それはハックです:
- (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]
ときにのみ呼び出されます。が(バッキング データが変更されたため) 再度追加された場合 (バッキング データが再度変更されたため)は呼び出されません。UITableViewCell
UITableView
UITableViewCell
-[UITableViewCell didMoveToSuperview]
UITableView
UITableViewCells