2011-01-21 40 views

Respuesta

12

Tienes que implementar el método ShouldReturn de UITextFieldDelegate y crear el siguiente campo de texto BecomeFirstResponder(). Luego, regresar/siguiente te llevará al siguiente campo. Si la devolución se realiza en el último campo de texto, se llamará a ResignFirstResponder() en ese campo.

+0

Gracias ... exactamente lo que estaba buscando ... – SpokaneDude

0

Tiene que mover manualmente la vista que contiene los campos de texto, de forma que el campo de texto que desea esté sobre el teclado.

+0

Dimitris ... No creo que entiendas mi pregunta ... no es un problema con la vista ... es que cuando toco Siguiente en el teclado, quiero que el foco se mueva al siguiente campo de texto ... hasta llegar al último, en ese punto se convierte en FirstResponder y el teclado desaparece. – SpokaneDude

18

La "Respuesta Aceptada" es correcta, pero pensé que un pequeño código no haría daño a las personas que son nuevas en MonoTouch.

public override void ViewDidLoad() { 
    base.ViewDidLoad(); 

    // make first text field have focus 
    this.txtMake.BecomeFirstResponder(); 

    // make 'return' shift focus to next text field 
    this.txtMake.ShouldReturn = delegate(UITextField textField) { 
     this.txtModel.BecomeFirstResponder(); 
     return true; 
    }; 

    // make 'return' on last text field save and close the form 
    this.txtModel.ShouldReturn = delegate(UITextField textField) { 
     this.txtModel.ResignFirstResponder(); 
     this.SaveAndClose(); 
     return true; 
    }; 
} 

private void SaveAndClose() { 
    // todo: do something with your data 

    // navigate back 
    this.NavigationController.PopViewControllerAnimated(true); 
} 

Espero que esto ayude a los demás.

Cuestiones relacionadas