UINavigationItem.titleView ¿puede convertirse en el primer respondedor?

Tengo un UITextField personalizado agregado a UINavigationItem.titleView. Pero no se convierte en FirstResponder. ¿Porque?

- (void) viewDidLoad
{
    [super viewDidLoad];
    UITextField *titleTextField = [[UITextField alloc] initWithFrame:CGRectMake(65.0f, 8.0f, 160.0f, 30.0f)];
    titleTextField.text = @"Untitled";
    titleTextField.textAlignment = UITextAlignmentCenter;
    titleTextField.textColor = [UIColor whiteColor];
    titleTextField.font = [UIFont boldSystemFontOfSize:20.0f];
    //titleTextField.backgroundColor = [UIColor redColor];
    titleTextField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
    titleTextField.delegate = self;
    titleTextField.tag = 2;
    self.navigationItem.titleView = titleTextField;
    [titleTextField becomeFirstResponder]
}

Por favor, consejos.

Gracias de antemano, Bharathi.

preguntado el 12 de junio de 12 a las 13:06

Tu código parece estar bien... ¿intentaste escribir el código anterior en viewWillAppear ? -

@Maulik Sí ... ¡Pero no funcionó! -

Realice una declaración if... rápida para ver si puede convertirse en First Responder. como si ([titleTextField se convierte en FirstResponder]) -

3 Respuestas

Trata [self.navigationItem.titleView becomeFirstResponder]; en lugar de [titleTextField becomeFirstResponder];

Respondido el 12 de junio de 12 a las 14:06

Intenté esto también ... Pero no tuve suerte :-( - Bharati Jayakumar

También debe cumplir con la UITextFieldDelegate protocolo. Creo que no tienes que conformarte con el protocolo.

en archivo .h (por ejemplo)

@interface RootViewController : UITableViewController<UITextFieldDelegate>

@end

Respondido el 12 de junio de 12 a las 14:06

Sí... Ya lo he hecho también... Conformé UITextFieldDelegate en mi archivo .h @interface ShowListViewController : UIViewController <UITextFieldDelegate,UITextViewDelegate>{ //code } @end Pero aun asi no funciono.. - Bharati Jayakumar

Genial... ¿Puedes compartir tu código fuente aquí? Podría estar haciendo algo mal en alguna parte entonces .. - Bharati Jayakumar

Prueba esto:

[titleTextField becomeFirstResponder];

entonces:

self.navigationItem.titleView = titleTextField;

dime si hay suerte...

Respondido el 12 de junio de 12 a las 19:06

Parece que navigationItem.titleView no se agregará a la jerarquía de vistas... Por lo tanto, no responderá a UIResponderClass... Corríjame si me equivoco... - Bharati Jayakumar

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.