2010-08-09 11 views
5

Ich habe ein UITextField in einer UITableViewCell. Aus irgendeinem Grund ist die Schaltfläche zum Löschen nicht auf den textField-Text ausgerichtet. Hier ist meine Textfield-Code:Warum ist die Schaltfläche zum Löschen nicht auf den Text in einem UITextField ausgerichtet?


cell.selectionStyle = UITableViewCellSelectionStyleNone; 
usernameField = [[UITextField alloc] initWithFrame:CGRectMake(22, 10, cell.contentView.frame.size.width, cell.contentView.frame.size.height)]; 
usernameField.adjustsFontSizeToFitWidth = YES; 
usernameField.placeholder = @"Username"; 
usernameField.backgroundColor = [UIColor clearColor]; 
usernameField.keyboardType = UIKeyboardTypeDefault; 
usernameField.autocapitalizationType = UITextAutocorrectionTypeNo; 
usernameField.autocorrectionType = UITextAutocorrectionTypeNo; 
usernameField.returnKeyType = UIReturnKeyNext; 
usernameField.delegate = self; 
usernameField.clearButtonMode = UITextFieldViewModeAlways; 
[usernameField setEnabled:YES]; 
[cell addSubview:usernameField]; 
[usernameField becomeFirstResponder]; 
[usernameField release]; 

Und hier ist das Bild, das Problem zu demonstrieren: Screenshot

Edit: ich auch mit - (CGRect)clearButtonRectForBounds:(CGRect)bounds versucht und immer noch nichts

Antwort

19

Was ist Ihr contentVerticalAlignment Eigentum? Ich habe gesehen, dass dieses Problem auftaucht, wenn der Clear-Button mittig ausgerichtet ist, aber der Text oben ausgerichtet ist. Versuchen Sie, Ihre Textfeldausrichtung wie folgt einzustellen:

usernameField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter; 

Haben Sie Glück dabei?

+0

Vielen Dank für Ihre Hilfe, aber jetzt sind der Text und die Schaltfläche "Löschen" an der Unterseite der Zelle ausgerichtet. Ich diesen Code richten Sie tatsächlich den Text, nicht die Schaltfläche deaktivieren. Ich möchte den Clear-Knopf auf die Mitte der Zelle ausrichten Irgendwelche Vorschläge? –

+0

Es hat funktioniert! Ich habe gerade die CGRect-Attribute geändert, um sie an die Schaltfläche zum Löschen anzupassen –

+0

Danke. Zur Klarstellung habe ich die Höhe der Zelle und das Textfeld berücksichtigt, um den vertikalen Versatz zu korrigieren. CGRect newFrame = albumTitleTextField.frame; newFrame.origin.y = (zelle.bounds.size.height - newFrame.size.height)/2.0; [albumTitleTextField setFrame: newFrame]; –

Verwandte Themen