49

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

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

[myTextField becomeFirstResponder];

无论何时调用它,它都会一直返回NO,根据文档,这意味着文本字段拒绝成为第一响应者......我做错了什么?

编辑:

textfield正确响应被触摸。然后它会调出键盘。只有当它以becomefirstresponder编程方式告诉它问题发生时。

4

5 回答 5

44

事实证明,当我尝试发送第一响应者时,文本字段为零。becomeFirstResponder在生命周期的后期发送有效。

于 2010-02-01T15:02:41.977 回答
9

我作为子视图添加到分组表视图单元格的文本字段遇到了同样的问题 - 但经过一番摸索后找到了解决方案。

假设您在 cellForRowAtIndexPath 方法中为文本字段提供了一个标签,您可以执行以下操作:

- (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];
}
于 2010-01-05T17:57:51.583 回答
5

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

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

   //... any other code you need 
}
于 2014-04-24T06:52:13.790 回答
1

UITextFieldcellForRowAtIndexPath. 文本字段可以正常工作,但它没有在字段内显示闪烁的光标。当您按住时,缩放放大也不会显示光标。

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

于 2010-05-10T18:27:44.327 回答
0

你的 UITableViewediting属性设置为YES

于 2009-11-14T01:01:48.517 回答