Code Bye

点击tableview中的textField为什么没有出发 didSelectRowAtIndexPath事件?

 

点击tableview中的textField为什么没有出发 didSelectRowAtIndexPath事件?

点击textField外面的地方就可以触发,为什么呢?

如何让点击tableview中的textField触发didSelectRowAtIndexPath事件?

textField  和tableView是两码事

40分
自定义或者在cell里面addsubview了,并且没有 userInteractionEnabled = NO;对不对?对不对?
可以在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
查看??
引用 3 楼 ybh37 的回复:

可以在delegate中
// Called before the user changes the selection. Return a new indexPath, or nil, to change the proposed selection.
– (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIn……

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

-(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; 
}
引用 2 楼 ybh37 的回复:

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

要这样?? 
txtField2.userInteractionEnabled = NO;

回去试试
这般处理后就好了??

txtField2.userInteractionEnabled = NO;

这样txtField都不能输入文字了。

已经用另一种方法解决了。

不过点击txtField还是触发不了willSelectRowAtIndexPath

哦 这个给疏忽了??
还可以用页面切换、touch事件中触发cell选中 等思路??
不过,解决就好了,呵呵
view穿透,就是说两层或以上的view都能同时触发touch事件。
我一直奔着这个思路去的

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明点击tableview中的textField为什么没有出发 didSelectRowAtIndexPath事件?