“关闭” 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 后,搜索列表上的光标丢失的主要内容,如果未能解决你的问题,请参考以下文章