ios - 如何在后台应用程序时在键盘前面显示keyWindow?

标签 ios swift mobile

UIApplication.shared.keyWindow?.addSubview(self.backgroundImage)

我会试试这个:

let windowCount = UIApplication.shared.windows.count

UIApplication.shared.windows[windowCount-1].addSubview(self.backgroundImage)

我用键盘打字,然后按主页按钮。当我返回应用程序时,我只需要显示背景图像,但应用程序在背景图像前面显示键盘

最佳答案

包含键盘的窗口是单个窗口,级别高于keyWindow。所以你在 keyWindow 中的 self.backgroundImage 不能覆盖键盘。

建议:

在应用进入后台时调用 window.resignFirstResponder()

更好的方法:

如果它正在显示,请将您的背景图像添加到键盘窗口

if let keyboardWindow = applicationKeyboardWindow {
    keyboardWindow.addSubview(self.backgroundImage)
}

var applicationKeyboardWindow: UIWindow? {
   var windows = UIApplication.shared.windows.filter { win -> Bool in
        let descri = String(describing: type(of: win))
        return descri == "UITextEffectsWindow" || descri == "UIRemoteKeyboardWindow"
    }
    windows.sort(by: { $0.windowLevel > $1.windowLevel } )
    return windows.first
}

关于ios - 如何在后台应用程序时在键盘前面显示keyWindow?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58705858/

相关文章:

iphone - iOS facebook SDK - 对话框 - 移动按钮

ios - JSon 解析错误 IOS 对象键为空

swift - 快速删除 M13PDFKit 中的完成按钮

iphone - 是否可以在 iTunes 连接可用日期之前下载 ios 应用程序?

ios - UIView 上的一根手指限制

ios - 如何通过父 View 管理文本标签高度

ios - UIView 在没有 UIViewController 的情况下获取宽度/高度

android - 在多人游戏中跨多个移动设备宽高比发送图像位置

java - 应用程序引擎中的移动子域

html - 如何设置全屏背景图片?