代码之家  ›  专栏  ›  技术社区  ›  Jasarien

告诉UITableViewCell中嵌入的UITextField成为第一响应者

  •  46
  • Jasarien  · 技术社区  · 16 年前

    我有一个 UITextField 这是对 UITableViewCell .

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

    [myTextField becomeFirstResponder];
    

    这种回报 NO 一直以来,无论何时调用,根据文档,这意味着文本字段拒绝成为第一响应者…我做错什么了?

    编辑:

    这个 textfield 正确回应被触摸。然后它打开键盘。只有当你告诉我 becomefirstresponder 以编程方式说明问题的发生。

    5 回复  |  直到 8 年前
        1
  •  42
  •   Jasarien    16 年前

    结果发现,当我试图发送第一个响应者时,文本字段为零。 发送 becomeFirstResponder 在生命周期的后期工作。

        2
  •  8
  •   Jim Rhoades    16 年前

    我在将一个textfield作为子视图添加到一个分组表视图单元格中时遇到了同样的问题,但是在进行了一些搜索之后,我找到了一个解决方案。

    假设您在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];
    }
    
        3
  •  5
  •   miracules    12 年前

    在-(void)viewdidload中调用它是可行的。

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

    我没有让光标出现在 UITextField 是第一个响应者 cellForRowAtIndexPath .文本字段可以正常工作,但它没有在字段内显示闪烁的光标。当您按住时,缩放放大也不会显示光标。

    我通过设置 becomeFirstResponder 里面 didSelectRowAtIndex 方法。

        5
  •  0
  •   Art Gillespie    16 年前

    你的视野合适吗 editing 属性设置为 YES ?

    推荐文章