Neredeyse UITableViewCell
'u UITextField
ile uygulayarak bitirdim.UITextView ile UITableViewCell UITableView satırını seçme yeteneğini kaybediyor mu?
- (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;
}
Sonra da diğer alanları girdi görünümler gösterilmesine izin textfield'ı istifa, didSelectRow
yöntemi uygulanmaktadır: Aksine o ben o basit bir yolunu uygulamış CGRectMake
içinden ve UITableViewCell.contentView
gidiyor.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
...
[amountField resignFirstResponder];
...
}
Bu benim UITextField ile bir değil iken, ben alanını Yani o diğerleri Tüm hücre seçildiğinde seçildiğinde, tek şey, tablodaki diğer satır olduğunda ise sorunsuz çalışır ve Mavi döner seçilir ve metin girebilirim ancak hücre seçilmemiş. Test ettim ve problem uyumludur anladım:
[cell addSubview:amountField];
seçilebilir hücre davranışını kırar gibi görünüyor, hatta [cell contentView]
eklemeden bu düzeltmez. Bir şey mi kaçırdım? Metin alanı EVET-userInteractionEnabled kümesi vardır ve tüm hücre dolduruyorsa
çalışacak bu deneyin? –
Görünüşe göre değil: EmptyStack tavsiyelerini takip ettim ve [amountField setUserInteractionEnabled: NO] ayarladı; DidSelectRow yönteminin başlangıcında ve sonra [amountField setUserInteractionEnabled: YES] yalnızca seçili satır metin alanına sahip olduğunda. Seçim şimdi tamam, ama gerçekten metin girmek için satırda iki kez dokunmak zorundayım ... –
@micpringle, Ofcourse. Metin alanı hücrenin tamamını doldururken metin alanına ve hücre yanıtlarına dokunamaz. – EmptyStack