当 UITextField 在 UICollectionViewCell 内部时,它可以成为第一响应者吗?

Can a UITextField become a first responder when it's inside of a UICollectionViewCell?

作为UICollectionView的属性的textField是否可以成为第一响应者,并显示键盘?

当我使用此代码时,它有 20% 的时间对我有效。

我试过直接调用并在主线程方法上使用执行选择器,没有骰子。

我试过在 textField 成为第一响应者之前辞去其他响应者。

我是不是打错地方了?

- (void)awakeFromNib {
    [super awakeFromNib];

    self.nameField.delegate = self;

    [self.nameField addTarget:self action:@selector(nameFieldDidChange:) forControlEvents:UIControlEventEditingChanged];

    [self.nameField performSelectorOnMainThread:@selector(becomeFirstResponder) withObject:nil waitUntilDone:YES];
}

我想你想要 performSelector:withObject:afterDelayawakeFromNib 方法在初始化序列的早期被调用。设置第一响应者是不正确的place/time。

通过延迟 0 调用 performSelector:withObject:afterDelay,您可以在尝试更改第一响应者之前完成初始化过程。

也许你应该让你的 customCollectionViewCell 的 textField 成为方法中的第一响应者:- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath