更改视图时隐藏键盘

时间:2013-05-07 20:50:21

标签: ios xcode uitextfield uitextview

我已经检查了其他类似的问题,但没有一个能解决我的问题。 我有一个基于窗口的应用程序,我在相同的.xib文件中使用更多的窗口。在第一个窗口中,我有一些文本字段,我可以隐藏键盘点击“完成”按钮。在第二个窗口中,我有一个文本视图,此处通过点击“完成”键盘被解除。 问题是:如果我离开第一个视图而没有关闭键盘而我转到第二个视图,键盘没有响应。我无法关闭它,按钮不再工作。哪里是我的错?我可以解决这个问题吗?

我希望你能帮助我。非常感谢你。

2 个答案:

答案 0 :(得分:1)

使用通知设计方法来消除当前:

创建通知并将其包含在切换到另一个视图的取消方法或方法中:

NSNotification *dismissKeyboard = [NSNotification notificationWithName:@"dismissKeyboard" object:nil];
[[NSNotificationCenter defaultCenter] postNotification:dismissKeyboard];

在第二个视图中,在viewDidLoad中添加通知侦听器:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(methodToExecute) name:@"dismissKeyboard" object:nil];

添加发送通知时执行的方法:

-(void)methodToExecute {
    [self.textfield resignFirstResponder];
}

答案 1 :(得分:0)

您需要在更改视图之前简单地使用resignFirstResponder。取消第二个UIWindow并仅使用一个UIWindow来交换视图。通常你使用2个viewControllers并在它们之间进行更改,但如果你真的想要,你也可以在UIWindow上使用2个不同的UIViews。