1

我正在制作一个基于网络的应用程序,我偶然发现了一个小难题。我的应用程序连接到服务器,应用程序使用键盘并在按下某些按钮时显示模式视图。这一切都很好,可以按照我的意愿工作。我的问题是当服务器失去连接时,无论是为了维护还是我们失去连接,应用程序都会返回登录屏幕,但键盘或模式视图不会被关闭。我是否必须跟踪这些以解除它们,或者是否有一些全局命令可以发送以解除所有内容。

在此先感谢您的帮助

4

4 回答 4

4

在您的视图控制器用户中:

[self.view endEditing: YES];

这将resignFirstResponder适用于主视图的所有子视图。无需跟踪哪个 textField 是第一响应者。

于 2012-05-22T21:11:49.560 回答
2

至少有几种不同的方法可以关闭键盘:其中一种应该可以工作:

[myEditField resignFirstResponder];
[myEditField endEditing];
[parentView endEditing];

没有“全局”方式来关闭所有打开的模态视图。您将需要专门关闭您使用以下方法打开的任何模式视图:

[self dismissModalViewControllerAnimated:YES];
// This can be called either from within the modal view or its parent:
于 2012-05-22T20:47:16.627 回答
2

我发现了一个endEditing失败resignFirstResponder的案例。在这些情况下,这对我有用。

[[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil];    
[self setEditing:NO];
于 2015-04-28T19:29:19.187 回答
0

只需使用私有属性来保存当前的模态视图和/或具有焦点的文本字段。然后,当您失去连接时,使用该属性的值(您在模态视图的实例化时设置)来关闭当前的。

于 2012-05-22T21:03:47.217 回答