【发布时间】:2013-10-25 17:00:23
【问题描述】:
我很困惑,希望有人能提供帮助。
我在 segue 之前为我的所有五个文本字段调用 resign first responder 方法。发生转场,如果键盘在转场之前可见,则无论我做什么,键盘都会保留。这在 IOS6 中没有发生。它只发生在 IOS7 中。
非常感谢您的帮助。
场景如下:
用户一次触摸一个文本字段来输入数据。键盘从第一响应者从一个字段更改为下一个字段没有问题,并且可以从 DONE 按钮退出而不会出现问题。当用户触摸将从选取器视图中填充的字段时,就会出现问题。如果键盘在之前的文本字段之一中可见,则它不会消失。
我有这段代码试图在两个字段的editingDidBegin 操作上resignFirstResponder。我正在使用这两个字段来保存数字,但我正在从下一个视图的选择器中填充它们。
- (IBAction)txtRatioOrHullTypeTouched:(id)sender
{
// Hide the keyboard before the segue to the picker occurs.
[self.txtPitch resignFirstResponder];
[self.txtRPM resignFirstResponder];
[self.txtSlipOrSpeed resignFirstResponder];
[self.txtRatio resignFirstResponder];
[self.txtHullType resignFirstResponder];
segueToPicker = YES; // Raise flag indicating that this segue is to the picker.
[self performSegueWithIdentifier:@"toPicker" sender:sender];
}
我也将同样的代码放在viewWillDisappear 中,如下所示:
- (void)viewWillDisappear:(BOOL)animated // Unchanged
{
// Hide the keyboard before the segue to the picker occurs.
[self.txtPitch resignFirstResponder];
[self.txtRPM resignFirstResponder];
[self.txtSlipOrSpeed resignFirstResponder];
[self.txtRatio resignFirstResponder];
[self.txtHullType resignFirstResponder];
[super viewWillDisappear:animated];
}
这两种方法都在初始视图 ViewController.m 文件中。
【问题讨论】:
-
试试 [[[UIApplication sharedApplication] keyWindow] endEditing:YES];
标签: ios iphone objective-c