【问题标题】:UITextField Keyboard not disappearingUITextField 键盘没有消失
【发布时间】:2014-02-19 00:07:51
【问题描述】:

我目前正在为 iOS 7 编写应用程序,但最近遇到了一个有趣的错误。在我的一个 UIViews 中,我有 3 个普通的 UITextFields 和另外两个在编辑开始时 resignFirstResponder 的 UITextFields。它们显示了一个 UIDatePicker 和 UIPickerView 以及一个 UIToolbar。我遇到的错误是,当我在前 3 个文本字段之一中键入内容时,继续单击结束编辑的文本字段而不单击 UIControl(称为 backgroundTapped :),键盘不会消失。我添加了一个日志以查看文本字段是否正在使用“canResignFirstResponder”退出 firstResponder 状态,并且它返回“1”,但即使在更改视图时键盘也不会消失,直到我单击前 3 个文本之一字段并单击背景。

这是我的 textFieldDidBeginEditing: 和我的 showRunTypePicker: 方法的开始:

textFieldDidBeginEditing:

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
    [textField becomeFirstResponder];

    if (textField.tag == 3005) {
        //[textField resignFirstResponder];
        //[self.view endEditing:YES];

        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDuration:0.25];

        [self showRunTypePicker:self];

        [UIView commitAnimations];
    }
}

showRunTypePicker:

- (IBAction)showRunTypePicker:(id)sender
    {
        BOOL canResign = [runTypeField canResignFirstResponder];
        NSLog(@"canResign: %hhd", canResign);

        [runTypeField endEditing:YES];
        [runTypeField resignFirstResponder];

        [[self view] endEditing:YES];
        [pickerView endEditing:YES];
        [pickerView setHidden:YES];
        [toolbar setHidden:YES];

        [distanceField endEditing:YES];

        ...
    }

我似乎无法弄清楚问题所在。谁能帮我解决这个问题?

编辑:它现在正在工作。我将 [self showRunTypePicker:self] 设置为 [self showRunTypePicker:textField] 并将其移至 textFieldShouldBeginEditing。现在键盘正确地消失了。

【问题讨论】:

  • 你有。代码中的错误。

标签: ios iphone objective-c keyboard


【解决方案1】:

您的代码中有错误。

阅读这一行

[self showRunTypePicker:self];

你不认为它实际上应该是:

[self showRunTypePicker:textField];

您的意图是在您选择特定文本字段时退出键盘。 所以你实际上应该通过

textField

标签为3005的实例。

尝试将 sender 用作 UITextField 并执行布尔检查。

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 2010-11-09
    • 2015-10-06
    • 2011-04-05
    • 2012-02-05
    • 2012-09-21
    • 2012-01-13
    • 1970-01-01
    • 2020-12-22
    • 1970-01-01
    相关资源
    最近更新 更多