2011-01-21 55 views
9

我有幾個UITextFields在一個組中......我需要能夠從第一個移動到最後一個,並在最後使它成爲FirstResponder。如何讓鍵盤移動到下一個文本域

我認爲Next鍵會移動焦點,完成會導致它成爲FirstResponder,但顯然不是。

想法?

回答

12

您必須實現UITextFieldDelegate的ShouldReturn方法,並在那裏創建下一個文本字段BecomeFirstResponder()。然後返回/下一個將帶你到下一個領域。如果在最後一個文本字段中返回,您將在該字段上調用ResignFirstResponder()。

+0

謝謝......我一直在尋找什麼...... – SpokaneDude 2011-01-22 14:33:49

0

您必須手動移動包含文本字段的視圖,方法是將所需的文本字段放在鍵盤上方。

+0

Dimitris ...我不認爲你理解我的問題...這不是視圖的問題...它是當我點擊鍵盤上的下一步時,我想焦點移動到下一個文本框...直到它到達最後一個,此時它變成FirstResponder並且鍵盤消失。 – SpokaneDude 2011-01-21 17:41:17

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); 
} 

希望這可以幫助別人。

相關問題