“关闭” UIWindow 后,搜索列表上的光标丢失

Posted

技术标签:

【中文标题】“关闭” UIWindow 后,搜索列表上的光标丢失【英文标题】:After "dismissing" UIWindow, cursor on search list is missing 【发布时间】:2012-11-29 20:20:04 【问题描述】:

我创建了一个自定义 UIWindow、UIViewController 和 UIView,以便通过应用程序为各种屏幕呈现全屏覆盖。显示、旋转和消除覆盖效果很好。

但是,问题是在关闭自定义 UIWindow 后,我的一个基础视图上的搜索框没有闪烁的蓝色光标。出现键盘,我可以在搜索框中输入字符,但没有光标。

另一个奇怪的地方是光标在 ios 模拟器上按预期出现,但在设备上却没有。

有人知道这里发生了什么吗?我已经尝试遍历我的覆盖视图层次结构以确保所有视图 ResignFirstResponder()。任何想法,将不胜感激。谢谢。

【问题讨论】:

【参考方案1】:

想通了。在我试图获取对原始 UIWindow 的引用时,出现了几个额外的 UIWindows。我使用 KeyWindow 属性来尝试访问我的原始窗口。但是,KeyWindow 不是我期望的 UIWindow。我有一个加载微调器处于活动状态,因此窗口的类型为 _UIAlertNormalizingOverlayWindow。所以,现在我调用 Windows 数组的 0 索引,而不是获取我的主应用程序窗口。然后我就可以在正确的 UIWindow 上调用 MakeKeyAndVisible。

由于某种原因,在错误的窗口上调用 MakeKeyAndVisible 导致了一些奇怪的现象,似乎隐藏了 UITextEffectsWindow,这是 iOS 用来在文本字段等中显示光标的窗口类型。

所以,我学到的教训是:永远不要假设在访问 KeyWindow 属性时会得到哪个 windows 数组实例。

【讨论】:

以上是关于“关闭” UIWindow 后,搜索列表上的光标丢失的主要内容,如果未能解决你的问题,请参考以下文章

React Native - 单击 Flatlist 的项目(搜索列表后)

触发器上的光标

Linux中怎么终止正在运行的后台程序

Linux中怎么终止正在运行的后台程序

“在光标关闭后尝试访问光标”

win10此电脑搜索框点了没反应,不出现闪烁的光标,左下角的搜索也用不了,怎么解决?