2011-01-21 3 views
9

그룹에있는 여러 개의 UITextField가 있습니다. 처음부터 마지막으로 이동할 수 있어야하며 마지막으로 FirstResponder로 이동해야합니다.키보드를 다음 텍스트 필드로 이동하는 방법

나는 다음 키가 포커스를 이동할 것이라고 생각하고 완료하면 FirstResponder가 될 것이지만 분명히 그렇지 않을 것입니다.

아이디어가 있으십니까?

답변

12

UITextFieldDelegate의 ShouldReturn 메서드를 구현하고 거기에 다음 텍스트 필드 BecomeFirstResponder()를 만들어야합니다. 그런 다음/next를 누르면 다음 필드로 이동합니다. 마지막 텍스트 필드에서 반환 값이 도달하면 해당 필드에서 ResignFirstResponder()를 호출합니다.

+0

고마워요 ... 정확히 내가 무엇을 찾고 있었는지 ... – SpokaneDude

0

원하는 텍스트 필드가 키보드 위에있는 방식으로 텍스트 필드가 포함 된보기를 수동으로 이동해야합니다.

+0

Dimitris ... 내 질문을 이해하지 못한다고 생각합니다.보기에 문제가 없습니다. 키보드에서 다음을 누르면 다음 텍스트 필드로 이동해야합니다. 마지막 점에 도달 할 때까지 FirstResponder가되고 키보드가 사라집니다. – SpokaneDude

18

"Accepted Answer"는 맞지만 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); 
} 

다른 사람들에게 도움이되기를 바랍니다.

관련 문제