我有几个UITextField在一个组...我需要能够从第一个移动到最后一个,并在最后一个使它成为FirstResponder。
我认为Next键会移动焦点,而Done会使它成为FirstResponder,但显然不是。
想法?
答案 0 :(得分:18)
“接受的答案”是对的,但我认为对于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);
}
希望这有助于其他人。
答案 1 :(得分:12)
您必须实现UITextFieldDelegate的ShouldReturn方法,并在其中创建下一个文本字段BecomeFirstResponder()。然后返回/下一步将带您到下一个字段。如果在最后一个文本字段中返回,则会在该字段上调用ResignFirstResponder()。
答案 2 :(得分:0)
您必须手动移动包含文本字段的视图,方式是您想要的文本字段位于键盘上方。