【发布时间】: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