Ios 告诉UITextField在嵌入UITableViewCell时成为第一响应者

Ios 告诉UITextField在嵌入UITableViewCell时成为第一响应者,ios,uitableview,cocoa-touch,uitextfield,first-responder,Ios,Uitableview,Cocoa Touch,Uitextfield,First Responder,我有一个UITextField,它是UITableViewCell的子视图 加载视图时,我希望文本字段成为第一响应者。我在表格单元格中有一个指向文本字段的指针,为此我尝试: [myTextField becomeFirstResponder]; 无论何时调用,它始终返回NO,根据文档,这意味着文本字段拒绝成为第一响应者。。。我做错了什么 编辑: textfield对触摸做出正确响应。然后打开键盘。只有当以编程方式告诉它成为第一响应者时,问题才会发生。您的UITableView编辑属性是否设置为

我有一个
UITextField
,它是
UITableViewCell
的子视图

加载视图时,我希望文本字段成为第一响应者。我在表格单元格中有一个指向文本字段的指针,为此我尝试:

[myTextField becomeFirstResponder];
无论何时调用,它始终返回
NO
,根据文档,这意味着文本字段拒绝成为第一响应者。。。我做错了什么

编辑:


textfield
对触摸做出正确响应。然后打开键盘。只有当以编程方式告诉它成为第一响应者时,问题才会发生。

您的UITableView
编辑属性是否设置为
YES

我在将文本字段作为子视图添加到分组表视图单元格时遇到了相同的问题,但在戳了几下后找到了解决方案周围

假设在CellForRowatineXpath方法中为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];
}

事实证明,当我试图将其发送给第一响应者时,文本字段为零。
生命周期后期发送
成为第一响应者
有效。

UITextField
成为
单元格内的第一响应者时,我没有让光标显示出来。文本字段可以很好地工作,但它没有显示字段内闪烁的光标。按住时,“缩放放大”也不会显示光标

我通过在
didSelectRowAtIndex
方法中设置我的
成为第一响应者来解决这个奇怪的问题。

在-(void)视图didload中调用它会起作用

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

   //... any other code you need 
}

否。UITextField是我手动添加的子视图,默认情况下不是单元格的一部分。我不知道tableview需要处于编辑模式?这不会显示删除按钮吗?我错了,我第一次看问题太快了。我刚试过你在做什么,它在这里起作用。在视图生命周期中的什么时候,您尝试过将
成为第一响应者
发送到文本字段?有没有找到解决方案?我也遇到了同样的问题。哎呀,在这里找到了答案:。我也遇到了光标未显示的问题,必须将uitableview的编辑属性设置为“是”才能正常工作。你解决了你丢失的光标问题了吗?@Jaserien谢谢。我也有同样的问题,用你的解决方案解决了。然而,我仍然无法理解textfield在view lifcycle中是如何变为null的,我还没有在任何地方发布它,是ARC在这样做吗?另外,解决这种情况的最佳方法是什么,我是否应该再次分配它?如果某个内容对文本字段有强引用(即,它作为另一个视图的子视图添加),则在ARC项目中不应为空。检查你的文本字段是否有一个很强的引用。我也在做同样的事情,它第一次工作。但是当我按下另一个视图并返回时,相同的代码不起作用。我也有同样的问题,新XCode有一些问题:(