键盘在多个UIWindows中不弹出

3
我创建了一个加载UIWindow,当我开始加载时,我调用它并使用makeKeyAndVisible。完成后,我将我的主UIWindow设置为makeKeyAndVisible。但我的问题是在这样做之后,当我点击文本框时,键盘不会弹出。这个问题在Cursor is blinking in UITextField but keyboard doesn't appear中提到,但我找不到正确的答案。

编辑:在UIView中,当我点击地址栏时,键盘确实会弹出,但我无法输入。但在谷歌页面中,当我点击搜索文本框时,键盘不会弹出。

- (void)showLoading:(NSString*)text
{
loadingWindow = [[UIWindow alloc] init];
[[UIApplication sharedApplication] beginIgnoringInteractionEvents];
mainWindow = UIApplication.sharedApplication.keyWindow;    

[loadingWindow setFrame:CGRectMake(0, 0, boundWidth, boundHeight)];
[loadingWindow setRootViewController:[[UIViewController alloc] init]];
[loadingWindow.rootViewController setView:[[UIView alloc] init]];
[loadingWindow.rootViewController.view setFrame:loadingWindow.frame];

[loadingWindow setHidden:NO];
}

- (void)hideLoading
{
[loadingWindow setHidden:YES];
[loadingWindow removeFromSuperview];
}
1个回答

2

我找到了问题所在。当我想把loadingWindow放在最上面时,我调用了[loadingWindow makeKeyAndVisible],我相信这就是问题的原因。现在我只使用[loadingWindow setHidden:NO]


你为什么要添加一个新窗口?iOS 应用程序应该只有一个窗口,并且它应该只在 AppDelegate 中设置。 - AMayes
2
我认为你是错的。看一下https://dev59.com/QWsy5IYBdhLWcg3w6iRZ - AliBZ
除非应用程序能够在外部设备屏幕上显示内容,否则应用程序只有一个窗口。UIWindow文档 - AMayes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接