在iOS7中点击UITextFields

时间:2014-02-25 01:12:07

标签: ios iphone objective-c cocoa-touch uitextfield

如果选择UITextField并显示键盘,如果我点按了视图的其他部分,键盘就会消失。

如果我点击另一个UITextField,键盘会保持向上,取消选择第一个文本字段,并且没有任何反应。然后我需要再次点击另一个UITextFIeld以进行选择并显示键盘。

当选择第一个UITextField时,是否可以立即访问第二个UITextField?

4 个答案:

答案 0 :(得分:1)

如果您在textFieldDidEndEditing中重新加载表格视图,则会以这种方式中断选择。不要那样做。

答案 1 :(得分:1)

尝试一下,按下另一个视图应该调用fn以下。

-(void)disappearKey{
[self.view endEditing:YES];
}
键盘消失后,点击任意文本字段,都会出现键盘。

答案 2 :(得分:0)

首先,我认为这是一个错误,当点击另一个UITextField或UITextView时,键盘不会被解除并再次打开。应该报告,Apple应该修复它。

使用文本字段委托方法并注册键盘通知,如果用户点击另一个文本字段并且键盘未关闭并重新打开,则应该可以手动跟踪。至少你应该能够检测到何时发生这种情况并通过[textField resignFirstResponder]手动关闭键盘;

键盘通知如下:

UIKeyboardWillShowNotification
UIKeyboardDidShowNotification
UIKeyboardWillHideNotification
UIKeyboardDidHideNotification

我很确定你知道UITextfield和textview委托方法

 – textFieldShouldBeginEditing: 
 – textFieldDidBeginEditing:
 – textFieldShouldEndEditing:
 – textFieldDidEndEditing:

我现在不是一个活跃的项目,所以我不确定我是否只是忽略了这个问题,但我不记得这件事发生在我身上。

答案 3 :(得分:0)

  • 您可以使用BSKeyboardControls。只看演示并决定 使用与否。

  • 或者您可以按顺序将标记设置为每个文本字段 在uiview。然后使用以下代码。

    -(BOOL)textFieldShouldReturn:(UITextField*)textField
    
    {
         NSInteger nextTag = textField.tag + 1;
    
         UIResponder* nextResponder = [textField.superview viewWithTag:nextTag];
    
         if (nextResponder) {
    
        [nextResponder becomeFirstResponder];
    
        } else {
    
        [textField resignFirstResponder];
     }
    return NO; 
    }