iPhone: felváltja a sejt nézet UITextField

szavazat
0

Én alapvetően próbál felvenni UITextField egy UITableViewCell upon Tableview: commitEditingStyle: forRowAtIndexPath :. A betét, szeretnék hozzáadni egy UITextField a meglévő cellában.

Állíthatok textField valami ilyesmit:

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

Aztán commitEditingStyle, van valami, mint például:

- (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.
}

Amikor rákattintok a Beszúrás tartozék (+), a textField valóban kap huppant a képernyőre, de nem, ha közel a sejt, ami kattintással. Magától ki egy véletlenszerű része a UIView, nem a tényleges cella a indexPath át, ahol a + kattintottak.

Insight hol rontottam, és hogyan lehet helyezni a UITextField rá a cellában, ahol a + kattintottak lenne ideális.

A kérdést 23/02/2009 22:42
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
1

Ön állítja a keret inputFielda kerethez a sejt, amely nem csinál, amit akar. Nézete a sejt belsejében használja a bal felső a keret, mint 0,0. Az textfield keret kell:

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

Mivel ez ahhoz képest, hogy SuperView helyezi a szövegmezőbe, így teljesen elfedi a másik véleményét, hogy a cellában.

Válaszolt 23/02/2009 22:50
a forrás felhasználó

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