iphone ios ios5 uitextfield uisearchbar

iphone - Texto de marcador de posición desalineado en UITextField de UISearchBar



ios ios5 (3)

Debe establecer la alineación de textField dentro de la barra de búsqueda. Obtenga textField de las subvistas de la barra UISearch y simplemente configure su alineación en el centro. Pruebe el código de muestra a continuación.

- (void)viewDidLoad { for (UITextField *txt in _searchbar.subviews) { if ([txt isKindOfClass:[UITextField class]]) { [txt setTextAlignment:NSTextAlignmentCenter]; } } [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. }

aquí _searchbar es la salida de UISearchBar.

Estoy tratando de personalizar la fuente de UISearchBar a través del proxy de apariencia. Funciona, pero de alguna manera, el texto de marcador de posición no se centra verticalmente. Traté de establecer la propiedad de alineación vertical; el texto del marcador de posición se centraría, pero el texto ingresado estaría ligeramente por debajo de la línea central ... ¿Hay alguna forma de solucionarlo?

Editar: código que utilicé para agregar una fuente personalizada:

[[UITextField appearanceWhenContainedIn: [UISearchBar class], nil] setFont: [UIFont customFontWithSize: 17]];


- (void)viewDidLoad { for (UITextField *txt in search.subviews) { if ([txt isKindOfClass:[UITextField class]]) { txt.font = [UIFont fontWithName:@"Arial-BoldMT" size:17]; txt.contentVerticalAlignment = UIControlContentVerticalAlignmentFill; } } [super viewDidLoad]; }

Pruebe este código una vez.


Cada vez que esto me sucede, generalmente se debe a alguna modificación de UIAppearance no se combina bien con UISearchBar . Observe los hackeos anteriores que haya realizado y quizás intente comentarlos de uno en uno.

En mi caso particular, en realidad fue una modificación de NSForegroundColor en un atributo de texto, por lo que esta desalineación puede no estar relacionada con el cambio de fuente.