1

我的MainViewController.m文件中有一个带有文本字段的应用程序。该文件中还有一个滚动视图,因此当键盘出现时,视图会滚动,以便用户可以看到文本字段。当用户点击屏幕时,键盘将被关闭。除了用户点击主页按钮将应用程序置于后台然后返回的情况外,一切都运行良好。在这种情况下,键盘仍然是向上的,但我的滚动视图向下,文本字段被隐藏。理想情况下,我也希望键盘也被解雇。

经过调查,被调用的方法都在AppDelegate.m文件中(不幸的是它没有进入 ViewDidLoad 或任何 View 生命周期方法)。如何从 AppDelegate.m 文件中的 applicationDidEnterBackground 关闭键盘?我是一个新手——我尝试在我的 MainViewController 文件中创建一个 +dismisskeyboard 函数并从 Appdelegate 调用它,但是我的 Textfields 都是实例变量,这不起作用。我还尝试在我的 AppDelegate 文件中创建一个文本字段,然后执行此操作 -

[_someField 成为FirstResponder];

[_someField resignFirstResponder];

但这也行不通...我不知道如何将情节提要上的任何内容链接到 someField 的AppDelegate属性。

任何人都可以提出解决这个问题的正确方法吗?

4

1 回答 1

3

UIApplicationDidEnterBackgroundNotification只需在您的班级中注册一个方法并在MainViewController那里关闭您的键盘。例如
注册通知

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receivedNotification:) name:UIApplicationDidEnterBackgroundNotification object:nil];


然后添加这个方法

- (void) receivedNotification:(NSNotification *) notification
{
    [txtFld resignFirstResponder];
}
于 2012-02-07T14:58:04.660 回答