私はほとんどUITableViewCell
のUITextField
を実装しています。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;
}
をそして私はまた、他のフィールドの入力ビューを示す許可するようにTextFieldを辞任、didSelectRow
メソッドを実装し:むしろ、私はそれを簡単な方法を実装しているCGRectMake
を通って、UITableViewCell.contentView
行きます。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
...
[amountField resignFirstResponder];
...
}
これは私のUITextFieldと1はありませんが、私はフィールドを意味し、それらの他の人は全体のセルが選択され、選択された場合、唯一のことは、表内の他の行があるでスムーズに動作し、ブルーに変わりが選択され、テキストを入力できますが、セルは選択されていません。 私はそれをテストし、問題はラインである考え出した:
[cell addSubview:amountField];
選択可能な細胞の挙動を壊すようだ、とさえ[cell contentView]
に追加すると、この問題を解決しません。私は何か見落としてますか?テキストフィールドがYESからuserInteractionEnabledセットを持っており、それがセル全体を占める場合
を動作しますが、これを試してみてください;'このUITextFieldが編集不可能なレンダリングされないのでしょうか? –
明らかにそうではありません:EmptyStackのアドバイスに従って、[amountField setUserInteractionEnabled:NO]を設定しました。 DidSelectRowメソッドの冒頭で、[amountField setUserInteractionEnabled:YES]を選択し、選択した行がテキストフィールドを持つ行である場合に限ります。選択は現在OKですが、実際にテキストを入力するには、行を2回タップする必要があります。 –
@micpringle、Ofcourse。テキストフィールドがセルを満たすので、テキストフィールドとセルの両方がタッチに反応することはできません。 – EmptyStack