我差不多完成了一個UITableViewCell
,其中有一個UITextField
。而不是要通過CGRectMake
和UITableViewCell.contentView
我已經實現了它簡單的方法:UITableViewCell與UITextField失去選擇UITableView行的能力?
- (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
方法,辭職的文本框,讓顯示等領域投入了意見。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
...
[amountField resignFirstResponder];
...
}
該工程進展順利,唯一的事情是有表中的其他行,當選擇那些別人都在整個小區被選擇並變成藍色,而一個與我的UITextField不,我的意思是場被選中,我可以輸入文本,但單元格未被選中。 我測試,並計算出的問題是在該行:
[cell addSubview:amountField];
看來,這打破了可選擇的細胞行爲,甚至將它添加到[cell contentView]
不解決這個問題。我錯過了什麼?
如果設置'userInteractionEnabled = NO;'這樣豈不呈現的UITextField不可編輯? –
顯然不是:我遵循EmptyStack的建議並設置[amountField setUserInteractionEnabled:NO];在DidSelectRow方法的開始處,然後[amountField setUserInteractionEnabled:YES]僅當選定行是帶有文本字段的行時。選擇現在可以,但我必須在該行上點擊兩次以實際輸入文字... –
@micpringle,Ofcourse。當文本字段填充單元格時,他不能同時使文本字段和單元格對觸摸作出響應。 – EmptyStack