在“解雇”UIWindow之后,缺少搜索列表上的光标

时间:2012-11-29 20:20:04

标签: ios xamarin.ios cursor uiwindow

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

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

另一个奇怪的事情是光标在iOS模拟器上按预期显示,但在设备上不显示。

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

1 个答案:

答案 0 :(得分:0)

想出来。在我尝试获取对原始UIWindow的引用时,会出现一些额外的UIWindows。我使用KeyWindow属性尝试进入原始窗口。但是,KeyWindow不是我所期望的UIWindow。我有一个加载微调器激活,所以窗口是_UIAlertNormalizingOverlayWindow类型。所以,现在我调用Windows数组的0索引而不是得到我的主应用程序窗口。然后我就可以在正确的UIWindow上调用MakeKeyAndVisible。

出于某种原因,在错误的窗口上调用MakeKeyAndVisible会导致一些看似隐藏UITextEffectsWindow的怪异,这是iOS用于在文本字段等中显示游标的窗口类型。

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