2つのセルを持つカスタムUITableViewを作成しました。1つのセルにUIImageViewを追加し、別のセルにUILabelを追加しました。UILabelでセルをクリックすると、不要なキーボードがポップアップし、カーソルが点滅します。重複した再利用識別子を使用していないことを確認しました。なぜこうなった?UILabelsはキーボードを呼び出さないと思いました。どうすればこれを取り除くことができますか?次のようなデリゲートメソッドを介してセルにアクセスする方法はありますか?
- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
???
よろしくお願いします。これが私のコードです:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:qRViewCellIdentifier];
NSUInteger row = [indexPath row];
if (cell == nil)
{
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:qRViewCellIdentifier] autorelease];
if (row == kQRRowIndex)
{
CGRect imageRect = CGRectMake(10,10.0,255.0,255.0);
UIImageView *qRImageView = [[[UIImageView alloc] initWithFrame:imageRect] autorelease];
qRImageView.tag = row;
[cell.contentView addSubview:qRImageView];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
else
{
CGRect labelRect = CGRectMake(10,10.0,255.0,25.0);
UILabel *fastPayLabel = [[UITextField alloc] initWithFrame:labelRect];
fastPayLabel.tag = row;
[cell.contentView addSubview:fastPayLabel];
}
}
if (row == kQRRowIndex)
{
UIImageView *qRImageView = (UIImageView *)[cell viewWithTag:kQRRowIndex];
qRImageView.image = [[UserManager sharedUserManager] qRImage];
}
else
{
NSString *message = [NSString stringWithString:@"Enable Fast Pay"];
UILabel *fastPayLabel = (UILabel *)[cell viewWithTag:kFastPayRowIndex];
fastPayLabel.textAlignment = UITextAlignmentCenter;
fastPayLabel.text = message;
fastPayLabel.font = [UIFont boldSystemFontOfSize:20];
}
return cell;
}