点击tableview中的textField为什么没有出发 didSelectRowAtIndexPath事件?点击textField外面的地方就可以触发,为什么呢?如何让点击tableview中的textField触发didSelectRowAtIndexPath事件?

解决方案 »

  1.   

    textField  和tableView是两码事
      

  2.   

    自定义或者在cell里面addsubview了,并且没有 userInteractionEnabled = NO;对不对?对不对?
      

  3.   

    可以在delegate中
    // Called before the user changes the selection. Return a new indexPath, or nil, to change the proposed selection.
    - (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath;
    - (NSIndexPath *)tableView:(UITableView *)tableView willDeselectRowAtIndexPath:(NSIndexPath *)indexPath
    查看⋯⋯
      

  4.   

    点击cell中的textfield这两个方法也没有触发
      

  5.   

    -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

         
        //获取第几分区
        NSUInteger section = [indexPath section];
        //获取行
        NSUInteger row=[indexPath row]; 
             
        static NSString *simpleTableIdentifier=@"SimpleTableIdentifier"; 
        UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier]; 
        if(cell==nil){ 
            cell=[[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:simpleTableIdentifier] autorelease]; 
        } 
         
        UITextField *txtField2=[[UITextField alloc] initWithFrame:CGRectMake(10, 2, 580, 40)];
         
        //NSLog(@"[tableData objectAtIndex:row]:%@",[tableData objectAtIndex:row]);
        txtField2.text=[listData objectAtIndex:row]; 
        txtField2.delegate=self;
        txtField2.tag=row+10;
         
        //txtField.backgroundColor=[UIColor redColor];
         
        txtField2.font=[UIFont fontWithName:@"Arial" size:28];
        //[txtField scrollRectToVisible:CGRectMake(0, txtField.contentSize.height-15, txtField.contentSize.width, 10) animated:YES];
        [txtField2 addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
        [cell.contentView addSubview:txtField2];
         
        [txtField2 release];
         
         
        //cell.textLabel.text=[listData objectAtIndex:row]; 
        //cell.textLabel.font=[UIFont boldSystemFontOfSize:15];
         
        return cell; 
    }
      

  6.   

    要这样⋯⋯ 
    txtField2.userInteractionEnabled = NO;回去试试
    这般处理后就好了⋯⋯
      

  7.   

    txtField2.userInteractionEnabled = NO;这样txtField都不能输入文字了。已经用另一种方法解决了。不过点击txtField还是触发不了willSelectRowAtIndexPath
      

  8.   

    哦 这个给疏忽了⋯⋯
    还可以用页面切换、touch事件中触发cell选中 等思路⋯⋯
    不过,解决就好了,呵呵
      

  9.   

    view穿透,就是说两层或以上的view都能同时触发touch事件。
    我一直奔着这个思路去的