0

我有UITextField,我需要让它不响应触摸,因为它位于 上UITableViewCell,并且当用户触摸 时textFielddidSelectRowAtIndexPath不会被调用。

这个 textField 也有清除按钮,我只需要检测用户点击清除按钮,而不是在其余的 textField 区域。

我试过了,textField.userInteractionEnabled = NO。在这种情况下,清除按钮当然不起作用,同样如此textField.enabled = NO;

 UITextField *textField = [[UITextField alloc] initWithFrame:someFrame];
 textField.textAlignment = NSTextAlignmentLeft;
 textField.clearButtonMode = UITextFieldViewModeAlways;
 textField.delegate = self;

请帮忙。

提前致谢。

4

2 回答 2

0

您是从笔尖加载单元格还是其他。我刚刚尝试制作自己的自定义单元格,如下所示 在此处输入图像描述

为 uitextfield 分配标签(在我的示例中为 9)

viewForCellAtIndex

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell ;

        cell = [tableView dequeueReusableCellWithIdentifier:@"purchaseNibCell"];
        if (cell == nil) {
            [[NSBundle mainBundle] loadNibNamed:@"PurchaseNibCell" owner:self options:nil];
            cell                    =   self.purchaseCell;
            self.purchaseCell       =   nil;

        }
        UITextField *text           =   (UITextField*)[cell viewWithTag:9];
        text.enabled                =   NO; <------ if you have not done in the xib file.
        cell.backgroundView         =   [[CustomCellBackground alloc] init];
        UIImageView *accessoryView  =   [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"accessory.png"]];
        cell.accessoryView          =   accessoryView;

    return cell;
}

希望能帮助到你

于 2013-05-30T14:14:14.033 回答
0

在这种情况下,可以使用一种解决方法。您必须制作一个屏蔽文本字段的文本区域但不能像这样清除按钮的视图

我们假设

someFrame = (20,50,100,44)

和周围的文本字段按钮20*20

所以我们的观点是

UIView *maskView = [[UIView alloc] initWithFrame: CGRectMake (20,50,80,44)]; 
maskView.backgroundColor = [UIColor clearColor];

添加文本字段后添加此视图。它将掩盖文本字段的用于文本的区域并保持按钮区域不变。

请记住,这未经测试,只是一种解决方法。因此,除了我向您推荐的方法之外,还有其他方法可以使用。并根据您的需要更改值。

于 2013-05-30T14:02:44.810 回答