1

我在表格视图的单元格的 oe 中添加了一个文本字段。现在我想比较触摸的对象是否是文本字段。为此,我正在使用 -

  -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *) event
    {
       UITouch *touch = [[event allTouches] anyObject];
    }

方法。在这里,我必须让 UITableview 单元格中的视图是文本字段。我怎么能得到那个?我对此很负责。请帮忙。

4

3 回答 3

1

使用 TextField 委托方法:

-(void)textFieldDidBeginEditing:(UITextField *)textField
于 2013-08-05T11:53:35.553 回答
1

我认为实现这一目标的最佳方法是:

  1. 创建一个UITableViewCell以 aUITextField作为子视图的子类。将其定义为 anIBOutlet并通过 interface builder 将其连接起来。
  2. 创建一个委托协议以通知委托(在您的情况下,它可能是处理UITableViewDataSource该事件的同一类)。
  3. 将子类声明UITableViewCell为 aUITextFieldDelegate并将其连接到UITextField您创建的。通过 IB
  4. 实施

    -(void)textFieldDidBeginEditing:(UITextField *)textField { [self.delegate textFieldWasTapped]; }

现在,您将在textFieldWasTapped事件的主控制器中收到通知。无需检查它是否确实来自 UITextField 对象,因为只有这种类型的实例才能触发此调用。

于 2013-08-05T11:55:37.283 回答
0
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *) event
{
    UITouch *touch = [[event allTouches] anyObject];
    if([[touch view] isKindOfClass:[UITextField class]])
    {
         UITextField *txtField = (UITextField *) [touch view];
         //UITextField object
    }
}
于 2013-08-05T11:59:20.027 回答