在 iOS 7 及更早版本中,如果我们想在应用程序中找到 topMostWindow,我们通常使用以下代码行
[[[UIApplication sharedApplication] windows] lastObject]
如果屏幕上有键盘可用,这通常会返回 UITextEffectsWindow
,否则会返回 UIWindow
。(这是常见情况,并非总是如此)
但是,在 iOS 8 中,当我使用上面的命令时,它总是给我 UITextEffectsWindow
。此外,[[UIApplication sharedApplication] windows]
始终包含 2 个对象(UIWindow
Và UITextEffectWindow
)。如果是 iOS 8,我应该怎么做才能获得 FrontMostWindow。
我认为(内部)UITextEffectsWindow
实际上是最前面的窗口。所以我想问题不是如何获得最前面的窗口,而是你想要获得什么窗口。
也许您正在寻找关键窗口? (来自文档:“按键窗口是指定用于接收键盘和其他非触摸相关事件的窗口。”)
原来是这样
[[UIApplication sharedApplication] keyWindow]
我认为从最终用户的角度来看,这是最前面的窗口(到目前为止我见过的所有情况)。
Tôi là một lập trình viên xuất sắc, rất giỏi!