iOS键盘在视图转换后才会退出

时间:2016-06-17 04:21:43

标签: ios objective-c iphone uikeyboard resignfirstresponder

我已使用此行UIViewController将此UITextField设置为viewDidLoadself.nameInputTextField.delegate = self;的代理人。<UITextFieldDelegate>

通过在@interface声明中添加[self.nameInputTextField resignFirstResponder]来为该课程设置委托。

当我选择nextButton时,在调用的方法中,我在推送新视图控制器之前尝试了[self.view endEditing:YES]以及- (BOOL)textFieldShouldReturn:(UITextField *)textField { [self.nameInputTextField resignFirstResponder]; return NO; } 一行。

该类的其余部分不会操纵firstResponder。

我还实现了UITextField委托方法

:after

经过广泛搜索后,我没有发现任何相关问题。有很多类似的关于辞职键盘,但没有关于键盘辞职被推迟到视图转换完成之后的时间。注意 - 如果您在浏览器中重新加载此URL,您将从头开始再次看到gif。

enter image description here

2 个答案:

答案 0 :(得分:0)

在ios中的任意位置隐藏键盘:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    for (UIView * txt in self.view.subviews){
        if ([txt isKindOfClass:[UITextField class]] && [txt isFirstResponder]) {
            [txt resignFirstResponder];
        }
    }
}

OR

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    [self.view endEditing:YES];    
}

答案 1 :(得分:0)

viewWillDisappear上重新启动键盘,问题应该解决。

修改

-(void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:animated];
    self.nameInputTextField.text = @"";
    [self.nameInputTextField resignFirstResponder];
}