如何在键盘上添加UIView – iOS

我一直试图在iOS上显示敬酒信息。 我做了什么是当有任何通知来了,只是我拿着导航控制器视图,并添加了我的吐司消息的子视图,并显示。

UIView *top_view = self.navigationController.view; [top_view showToast:string]; 

一切工作正常。 但是,我的烤面包视图不会增加键盘(如果键盘在前面)。 任何想法可能是什么问题…没有帮助可以节省我的时间… Thanx ..

您可以通过在主窗口中添加子视图来显示敬酒。

 UIWindow *toastDisplaywindow = [[[UIApplication sharedApplication] delegate] window];; for (UIWindow *testWindow in [[UIApplication sharedApplication] windows]) { if (![[testWindow class] isEqual:[UIWindow class]]) { self.toastDisplaywindow = testWindow; break; } } [toastDisplaywindow showToast:string]; 

如果正在显示一个键盘,它将显示为一个单独的窗口,位于通常的主窗口之上。 因此,检查是否正在显示键盘。 如果是,则在该窗口上添加Toast消息,否则在主窗口上添加Toast消息。

我在这个链接中find另一个方法,使用它可以直接进入键盘的UIView(如果需要的话)。

你必须添加你的子视图到:

 UIWindow *window = [UIApplication sharedApplication].windows.lastObject; 

这是在键盘上。

通常,键盘视图不是您主窗口的一部分。 它会在新窗口出现,当你在任何文本领域的焦点。

试试下面的代码来访问你的键盘视图。

 [[[UIApplication sharedApplication] windows] objectAtIndex:1] 

请记住,只有在屏幕上有键盘时才能使用。

另一种方法是添加一个自定义UIWindow,然后将其WindowLevel设置为最后一个窗口的+1。

像这样的东西

 NSArray *windows = [[UIApplication sharedApplication] windows]; UIWindow *lastWindow = (UIWindow *)[windows lastObject]; myWindow.windowLevel = lastWindow.windowLevel + 1; 

看看这个主题https://forums.developer.apple.com/thread/16375

更新Swift3

UIApplication.shared.windows.last

在iOS9中,Adithya的回答是行不通的,

UIWindow *window = [UIApplication sharedApplication].windows.lastObject;

工作得很好