我有个注册表单,有三个输入框,分别是, name,email,password。当在name和email上输入时,小键盘的返回键是 NEXT 键。我期望的效果是,用户选择NEXT时,焦点可以自动移到下一个输入框种。比如,从name移动到email,再移动到password输入框。password,请问这个该怎么实现?当在password输入框输入时,小键盘的返回键是DONE 键。我如何才能捕捉到用户按下DONE这个键的时间呢?  [name becomeFirstResponder];这样的方法,我试过,好像没有效果啊。

解决方案 »

  1.   

    1.设置输入框的delegate为self ,将name,email,password改为成员变量
    2.在self的类中实现UITextFieldDelegate Protocol 
    在这个方法中判断textfield是name还是email还是password来做出不同的行为。- (BOOL)textFieldShouldReturn:(UITextField *)textField
    {
        if(textFileld == name)
        {
           [password becomeFirstResponder];
           return YES;
        } 
        if(textFileld == password)
        {
           //处理done
           
           return YES;
        } }
      

  2.   


    用这个方法试了,情况是,当我哦完成了name字段的输入,俺NEXT时,小键盘就隐藏掉了,依然不能在下email框进行输入。但是,根据UI上的反馈来说,email字段好像却是获得了焦点了。因为,加入email输入框有文字的话,他会被这个操作清楚掉。楼上的兄弟,这个问题可以解决嘛?在线等。
      

  3.   


    原来是我之前写的一个监听,主动调用了resignFirstResponder导致的。
    谢谢楼上的兄弟。