UITextField不响应触摸,但响应清除按钮

时间:2013-05-30 13:53:30

标签: ios objective-c uitextfield

我有UITextField,我需要让它不要回复,因为它位于UITableViewCell,当用户触及textField时,didSelectRowAtIndexPath是没有被召唤。

此textField也有清除按钮,我只需检测清除按钮上的用户编带,而不是在其余的textField区域。

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

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

请帮助。

提前致谢。

2 个答案:

答案 0 :(得分:0)

在这种情况下,可以使用一种解决方法。您必须创建一个掩盖文本字段文本区域但不清除此按钮的视图

我们认为

someFrame = (20,50,100,44)

20*20

周围的文字字段按钮

所以我们的观点将是

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

添加文本字段后添加此视图。它会掩盖文本字段中用于文本的区域,并保留按钮区域。

请记住,这不是经过测试而只是一种解决方法。所以除了我建议您使用它之外的任何其他方法。并根据您的需要改变价值。

答案 1 :(得分:0)

您是否正在从笔尖加载单元格。我刚刚尝试制作我自己的自定义单元格,如下所示 enter image description here

为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;
}

希望有所帮助