【问题标题】:How to add a UIView over the Keyboard - iOS如何在键盘上添加 UIView - iOS
【发布时间】:2023-04-04 16:59:02
【问题描述】:

我一直在尝试在 iOS 上显示 Toast 消息。我所做的是,当任何通知出现时,我只需获取导航控制器视图并为我的 toast 消息添加一个子视图并显示。

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

一切正常。但是我的吐司视图没有添加到键盘上(如果键盘在前面)。知道可能是什么问题...一点帮助可能会节省我的时间...谢谢..

【问题讨论】:

    标签: iphone ios cocoa-touch uiview keyboard


    【解决方案1】:

    您可以通过向主窗口添加子视图来显示 toast。

    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 消息,否则在主窗口中。

    我在这个link中找到了另一种方法,使用它可以直接进入键盘的UIView(如果需要)。

    【讨论】:

    • 还是同样的问题... Toast 显示在键盘后面而不是键盘上方。
    • 更新了答案..试试这个。
    • 谢谢,我会尽力让你知道.. :)
    【解决方案2】:

    通常键盘视图不是主窗口的一部分。当您专注于任何文本字段时,它会出现在新窗口中。

    尝试以下代码访问您的键盘视图。

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

    请记住,这仅在您的屏幕上有键盘时才有效。

    【讨论】:

    • 我也试过你的代码..这也有效..谢谢你的回答;)
    【解决方案3】:

    您必须将您的子视图添加到:

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

    位于键盘顶部。

    【讨论】:

      【解决方案4】:

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

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

      工作顺利

      【讨论】:

        【解决方案5】:

        另一种方法是添加自定义 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

        【讨论】:

          【解决方案6】:

          Swift3 更新

          UIApplication.shared.windows.last

          【讨论】:

            猜你喜欢
            • 2015-03-21
            • 1970-01-01
            • 2016-03-19
            • 1970-01-01
            • 2014-03-05
            • 2023-01-03
            • 2015-12-19
            • 2021-07-20
            相关资源
            最近更新 更多