从UITableviewCell获取视图对象

时间:2013-08-05 11:50:26

标签: iphone ios uitableview uitextfield

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

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

方法。在这里,我必须得到UITableview单元格中的视图是文本字段。 我怎么能得到它?我是这个结构。请帮忙。

3 个答案:

答案 0 :(得分:1)

使用TextField Delegate方法:

-(void)textFieldDidBeginEditing:(UITextField *)textField

答案 1 :(得分:1)

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

  1. 使用UITableViewCell作为子视图创建UITextField子类。将其定义为IBOutlet并通过界面构建​​器将其挂起。
  2. 创建委托协议以通知代理人(在您的情况下,它可能是处理此事件的UITableViewDataSource的同一个类)。
  3. UITableViewCell子类声明为UITextFieldDelegate并将其连接到您创建的UITextField。通过IB
  4. 实施

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

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

答案 2 :(得分: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
    }
}