【发布时间】:2013-03-25 04:34:49
【问题描述】:
我正在使用resignFirstResponder 隐藏数字键盘,但它仅在某些时候隐藏键盘有效:我使用[textField resignFirstResponder]; 实现了backgroundTap,并且在后台点击时,键盘确实被隐藏了。我还在viewWillDisappear 中添加了这一行,但有时它会在那里工作。当用户回到他来自的窗口时,键盘消失了。但是当他进入一个新窗口(不是他来自的那个)时,键盘并没有消失。我使用isFirstResponder 方法检查了调试,在这两种情况下,文本字段确实不再是第一响应者(尽管在其中一种情况下,键盘一直显示,如前所述)。
viewWillDisappear的实现是这样的:
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[textField resignFirstResponder];
[self.view endEditing:YES];
}
我想在 viewWillDisappear 两种情况下都隐藏键盘,因为新窗口没有与此键盘相关的文本字段。它有完全不同的元素。
推动另一个视图的事件不是按钮单击,而是开始编辑文本字段。我的视图中有三个文本字段,其中只有一个显示键盘。另外两个推动了另一种观点。这是 textFieldDidBeginEditing 的代码:
-(void)textFieldDidBeginEditing:(UITextField *)textField{
if (textField1.editing == YES)
{
[self performSegueWithIdentifier:@"goToView1" sender:self];
}
else if (textField2.editing == YES)
{
[self performSegueWithIdentifier:@"goToView2" sender:self];
}
}
而生成键盘的文本字段是textField3。
关于如何让键盘在这两种情况下消失的一些想法?
【问题讨论】:
-
你到底想要什么?
-
我更改了问题的结尾以使其更清楚。
-
为什么要在
viewWillDisappear中隐藏键盘?
标签: iphone cocoa-touch keyboard uitextfield