我有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;
请帮助。
提前致谢。
答案 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)
您是否正在从笔尖加载单元格。我刚刚尝试制作我自己的自定义单元格,如下所示
为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;
}
希望有所帮助