我的MainViewController.m
文件中有一个包含Textfields的应用程序。该文件中还有一个滚动视图,因此当键盘出现时,视图会滚动,以便用户可以看到文本字段。当用户点击屏幕时,键盘被解除。除了用户点击主页按钮将应用程序放在后台然后返回到它之外,一切都运行良好。在这种情况下,键盘仍然处于运行状态,但我的滚动视图已关闭,文本字段已隐藏。理想情况下,我也想让键盘被解雇。
调查过后,调用的方法都在AppDelegate.m
文件中(遗憾的是它不会进入ViewDidLoad或任何View生命周期方法)。如何从AppDelegate.m文件中的applicationDidEnterBackground中解除键盘?
我是一个新手 - 我已经尝试在我的MainViewController文件中创建+ dismisskeyboard函数并从Appdelegate调用它,但我的Textfields都是实例变量,但不起作用。我还尝试在AppDelegate文件中创建一个文本域,然后执行此操作 -
[_ someField becomeFirstResponder];
[_ someField resignFirstResponder];
但这也行不通......我无法弄清楚如何将故事板上的任何内容链接到someField的 AppDelegate 属性。
有人能建议正确的方法来解决这个问题吗?
答案 0 :(得分:3)
只需在UIApplicationDidEnterBackgroundNotification
课程中为MainViewController
注册一种方法,然后在那里解除键盘。例如
注册通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receivedNotification:) name:UIApplicationDidEnterBackgroundNotification object:nil];
然后添加此方法
- (void) receivedNotification:(NSNotification *) notification
{
[txtFld resignFirstResponder];
}