在embeddedUITableViewCell时,告诉UITextField成为第一个响应者

我有一个UITextField是UITableViewCell的子视图。

当我的视图加载时,我希望文本字段成为第一响应者。 我有一个指向表格单元格的文本字段,所以要做到这一点,我想:

[myTextField becomeFirstResponder]; 

不pipe是什么时候被调用,它都会返回NO ,根据文档,这意味着文本字段拒绝成为第一响应者。我在做什么错了?

编辑:

文本字段正确地响应被触摸。 它然后调出键盘。 只有当它通过编程方式成为第一响应者时才会发生问题。

事实certificate,当我试图发送第一响应者时,文本字段是零。 稍后在生命周期中发送becomeFirstResponder工作。

我遇到了同样的问题,我已经添加了一个子视图到分组表格视图单元格 – 但find了一个解决scheme后,一些戳动。

假设你已经在你的cellForRowAtIndexPath方法中给了textfield一个标签,你可以这样做:

 - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0]; UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath]; myTextField = (UITextField *)[cell viewWithTag:kMyTextFieldTag]; [myTextField becomeFirstResponder]; } 

在 – (void)viewDidLoad中调用它将会起作用。

 -(void)viewDidLoad{ [super viewDidLoad]; // Do any additional setup after loading the view. [self.myTextField becomeFirstResponder] //... any other code you need } 

UITextField成为cellForRowAtIndexPath第一个响应者时,我没有得到游标显示。 文本字段将工作得很好,但它并没有显示在该字段内闪烁的光标。 当您按住时,缩放放大也不会显示光标。

我通过在didSelectRowAtIndex方法中设置我的becomeFirstResponder解决这个奇怪的问题。

你的UITableView editing属性是否设置为YES