当UITextField位于UICollectionViewCell内时,它是否可以成为第一响应者?

时间:2015-12-24 00:03:51

标签: objective-c uitextfield

作为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];
}

2 个答案:

答案 0 :(得分:2)

我想你想要performSelector:withObject:afterDelay。在初始化序列的早期调用awakeFromNib方法。这不是设置第一响应者的正确位置/时间。

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

答案 1 :(得分:0)

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