代码之家  ›  专栏  ›  技术社区  ›  choise

两个uitextfields-将第一个键盘滑出,下一个滑入

  •  0
  • choise  · 技术社区  · 14 年前

    所以在我看来我得到了

    [nameTextField becomeFirstResponder]
    

    现在,在一个按钮被点击之后,我想滑出这个文本字段的键盘,滑入另一个文本字段的键盘。

    我想到

    [nameTextField resignFirstResponder];
    [dateTextField becomeFirstResponder];
    

    但另一个键盘马上就出现了。

    评论 [dateTextField becomeFirstResponder]; 输出,我的nametextfield键盘按我的需要滑出的效果。

    你知道怎么做吗?

    谢谢!

    3 回复  |  直到 14 年前
        1
  •  2
  •   Tom Irving Splendid    14 年前

    你想这样做有什么原因吗?很明显,它会增加用户输入信息所需的时间,我知道这会使我很困扰。

    但是如果你真的想要这个效果,我会看如下:

    [dateTextField performSelector:@selector(becomeFirstResponder) withObject:nil afterDelay:timeDelay];
    

    在哪里? timeDelay 关闭第一个键盘所需的时间。

        2
  •  2
  •   Felixyz    14 年前

    您可以注册以观察这些通知: UIKeyboardWillShowNotification , UIKeyboardWillHideNotification . 这可以让你跟踪正在发生的事情,但它很容易变得相当复杂,所以汤姆欧文的建议可能更容易处理。

        3
  •  1
  •   Felixyz    14 年前

    要获得有关键盘隐藏和显示的通知,请查看

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidHide:)
        name:UIKeyboardDidHideNotification object:[self view].window];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) 
        name:UIKeyboardDidShowNotification object:[self view].window];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) 
        name:UIKeyboardWillHideNotification object:[self view].window];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) 
        name:UIKeyboardWillShowNotification object:[self view].window];
    

    并添加适当的方法,如

    -(void)keyboardWillShow:(NSNotification*)notif
    -(void)keyboardWillHide:(NSNotification*)notif
    -(void)keyboardDidShow:(NSNotification*)notif
    -(void)keyboardDidHide:(NSNotification*)notif
    

    然后你可以任意连接动画。

    请确保nslog()所有这些字段,它们并不总是在您期望的时候被调用(臭名昭著的是,当您从一个字段转到另一个字段时,您会立即收到willhide和willshow)