gpt4 book ai didi

iphone - 带有 UITextField 的 UITableViewCell 失去了选择 UITableView 行的能力?

转载 作者:IT王子 更新时间:2023-10-29 08:21:47 33 4
gpt4 key购买 nike

我几乎完成了一个带有 UITextFieldUITableViewCell 的实现。而不是通过 CGRectMakeUITableViewCell.contentView 我用更简单的方式实现了它:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"Cell"];
[cell setSelectionStyle:UITableViewCellSelectionStyleBlue];
amountField = [[UITextField alloc] initWithFrame:CGRectMake(110, 10, 190, 30)];
amountField.placeholder = @"Enter amount";
amountField.keyboardType = UIKeyboardTypeDecimalPad;
amountField.textAlignment = UITextAlignmentRight;
amountField.clearButtonMode = UITextFieldViewModeNever;
[amountField setDelegate:self];

[[cell textLabel] setText:@"Amount"];
[cell addSubview:amountField];
return cell;
}

然后我还实现了 didSelectRow 方法,放弃 textField 以允许显示其他字段输入 View 。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
...
[amountField resignFirstResponder];
...
}

这很顺利,唯一的问题是表格中还有其他行,当其他行被选中时,整个单元格被选中并变成蓝色,而我的 UITextField 没有,我的意思是该字段被选中并且我可以输入文本,但单元格未被选中。我已经对其进行了测试,并发现问题在于:

[cell addSubview:amountField];

这似乎破坏了可选单元格的行为,甚至将它添加到 [cell contentView] 也没有解决这个问题。我错过了什么吗?

最佳答案

如果文本字段将 userInteractionEnabled 设置为 YES,并且它填满了整个单元格,则无法让单元格监听触摸。为了让单元格响应触摸,您需要将文本字段的 userInteractionEnabled 设置为 NO

编辑:如果您想让文本字段可编辑,当单元格被选中时,在 didSelectRowAtIndexPath: 方法中添加以下代码,

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

// get the reference to the text field
[textField setUserInteractionEnabled:YES];
[textField becomeFirstResponder];
}

关于iphone - 带有 UITextField 的 UITableViewCell 失去了选择 UITableView 行的能力?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6579904/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com