iPhone: het vervangen van het oog van een cel met UITextField

stemmen
0

Ik ben eigenlijk op zoek naar een UITextField toe te voegen aan een UITableViewCell op tableView: commitEditingStyle: forRowAtIndexPath :. Op insert, ik wil een UITextField toe te voegen over de bestaande cel.

Ik opstelling de textField met iets als dit:

-(void) setUpIndexField {
    inputField = [[UITextField alloc] init];
    inputField.textAlignment = UITextAlignmentCenter;
    inputField.borderStyle = UITextBorderStyleRoundedRect;    
    inputField.keyboardType = UIKeyboardTypeNamePhonePad;
    inputField.delegate = self;
 }

Toen in commitEditingStyle, ik heb iets, zoals:

- (void)tableView:(UITableView *)tv
    commitEditingStyle:(UITableViewCellEditingStyle)editingStyle 
    forRowAtIndexPath:(NSIndexPath *)indexPath 
{
    NSInteger row = [indexPath row];
    if (editingStyle == UITableViewCellEditingStyleInsert) {
    if (row == 0) {
        UITableViewCell *cell = [tv cellForRowAtIndexPath:indexPath];
        inputField.frame = [tv cellForRowAtIndexPath:indexPath].frame;
        [cell.contentView addSubview:inputField];
        [inputField becomeFirstResponder];
        return;
    }
// more code etc.
}

Toen ik op de accessor Insert (+) klikt, wordt de textField inderdaad krijgen plofte op het scherm, maar niet in de buurt van de cel dat is erop te klikken. Het gaat uit naar een willekeurig deel van de UIView, niet de werkelijke cel voor de indexPath naar waar de + is geklikt.

Inzicht in waar ik mis ging en hoe ik kan het UITextField plaatsen op de cel waar de + is geklikt zou ideaal zijn.

De vraag is gesteld op 23/02/2009 om 22:42
bron van user
In andere talen...                            


1 antwoorden

stemmen
1

Het instellen van het frame van inputFieldhet frame van de cel die niet doen wat je wilt. Bekeken in de cel gebruikt de linkerbovenhoek van het frame 0,0. Uw tekstveld frame moet zijn:

inputField.frame = CGRectMake(0, 0, cell.frame.size.width, cell.frame.size.height);

Aangezien dat ten opzichte daarvan superview het tekstveld plaatst zodat het deze volledig bedekt de andere weergaven in die cel.

antwoordde op 23/02/2009 om 22:50
bron van user

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more