当 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:afterDelay
。 awakeFromNib
方法在初始化序列的早期被调用。设置第一响应者是不正确的place/time。
通过延迟 0
调用 performSelector:withObject:afterDelay
,您可以在尝试更改第一响应者之前完成初始化过程。
也许你应该让你的 customCollectionViewCell 的 textField
成为方法中的第一响应者:- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
作为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:afterDelay
。 awakeFromNib
方法在初始化序列的早期被调用。设置第一响应者是不正确的place/time。
通过延迟 0
调用 performSelector:withObject:afterDelay
,您可以在尝试更改第一响应者之前完成初始化过程。
也许你应该让你的 customCollectionViewCell 的 textField
成为方法中的第一响应者:- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath