如何防止键盘出现在自定义警报视图上

Posted

技术标签:

【中文标题】如何防止键盘出现在自定义警报视图上【英文标题】:How to prevent the keyboard from appearing over a custom alert view 【发布时间】:2013-01-16 01:29:52 【问题描述】:

我正在创建一个类似于 UIAlertView 的自定义警报视图。我遇到的是,当我的警报可见时 UITextField 在后台变为活动状态时,键盘会向上滑动。

如果我像这样将警报视图添加到主窗口:

[[[UIApplication sharedApplication] keyWindow] addSubview:myAlert];

它会出现在现有键盘上,但如果在出现警报后键盘变为活动状态,它仍然会被遮挡。

当从一个视图导航到另一个视图时,经常会发生这种情况。退出视图在退出时触发警报,下一个视图想要激活 UITextField 或其他东西。

【问题讨论】:

【参考方案1】:

也许您可以将自定义警报视图添加到新窗口,并将此窗口的 windowLevel 设置为 UIWindowLevelAlert 或更高。

【讨论】:

【参考方案2】:

我找到了一个非常好的方法和解释here。

【讨论】:

【参考方案3】:

您是否尝试过覆盖该方法

- (BOOL)canResignFirstResponder

然后返回 NO ?

【讨论】:

以上是关于如何防止键盘出现在自定义警报视图上的主要内容,如果未能解决你的问题,请参考以下文章

ios) 如何在自定义键盘上方创建建议视图

在自定义视图中调用 onTouchEvent() 时防止 RecycleView 滚动

UItableview 在自定义单元格上使用带有提示的警报视图重新加载数据的问题

出现键盘时无法上移自定义 UIView

在自定义适配器中隐藏软键盘

在自定义键盘扩展中检测输入对象视图类型