簡體   English   中英

UITextField鍵盤不消失

[英]UITextField Keyboard not disappearing

我目前正在為iOS 7編寫應用程序,但最近遇到了一個有趣的錯誤。 在我的一個UIView中,我有3個普通的UITextField和另外兩個UITextField,它們在編輯開始時會重新簽名FirstResponder。 它們顯示了UIDatePicker和UIPickerView以及UIToolbar。 我遇到的錯誤是,當我在前三個文本字段之一中鍵入內容,並繼續單擊未結束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。 現在,鍵盤正確消失了。

您有一個代碼錯誤。

閱讀這行

[self showRunTypePicker:self];

您不認為它實際上應該是:

[self showRunTypePicker:textField];

在這里,您的意圖是在您選擇特定的文本字段時退出鍵盤。 因此,您實際上應該通過

textField

標簽為3005的實例。

嘗試將sender用作UITextField並執行bool檢查。

希望能有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM