我已经检查过其他类似的问题,但没有一个能解决我的问题。我有一个基于窗口的应用程序,并且在同一个 .xib 文件中使用了更多窗口。在第一个窗口中,我有一些文本字段,我可以隐藏点击“完成”按钮的键盘。在第二个窗口中,我有一个文本视图,并且在这里通过点击“完成”,键盘被关闭。问题是:如果我在没有关闭键盘的情况下离开第一个视图并转到第二个视图,则键盘没有响应。我无法关闭它,并且按钮不再起作用。我的错在哪里?我可以解决这个问题吗?
我希望你能帮助我。非常感谢。
我已经检查过其他类似的问题,但没有一个能解决我的问题。我有一个基于窗口的应用程序,并且在同一个 .xib 文件中使用了更多窗口。在第一个窗口中,我有一些文本字段,我可以隐藏点击“完成”按钮的键盘。在第二个窗口中,我有一个文本视图,并且在这里通过点击“完成”,键盘被关闭。问题是:如果我在没有关闭键盘的情况下离开第一个视图并转到第二个视图,则键盘没有响应。我无法关闭它,并且按钮不再起作用。我的错在哪里?我可以解决这个问题吗?
我希望你能帮助我。非常感谢。
使用通知设计方法来关闭当前:
创建通知并将其包含在您的取消方法或切换到另一个视图的方法中:
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];
}
在更改视图之前,您只需简单地 resignFirstResponder 即可。取消您的第二个 UIWindow 并仅使用一个 UIWindow 来换出视图。通常您使用 2 个 viewController 并在它们之间进行更改,但如果您真的需要,您也可以在 UIWindow 上使用 2 个不同的 UIView。