[英]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.