0

は認識していますが、実際に-[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

4

0 に答える 0