Ios8 如何在键盘处于活动状态时显示UIAlertController操作表?

Ios8 如何在键盘处于活动状态时显示UIAlertController操作表?,ios8,uialertcontroller,Ios8,Uialertcontroller,我从我的UIViewController中呈现UIAlertController操作表: UIAlertController sheet = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleActionSheet]; [self presentViewController:sheet animated:YES completion:nil]

我从我的UIViewController中呈现UIAlertController操作表:

UIAlertController sheet = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleActionSheet];
[self presentViewController:sheet animated:YES completion:nil];

这在很大程度上是可行的。除非我有键盘,否则工作表会显示在键盘后面。这是预期的行为吗?是否需要从其他地方指定或显示另一个参数?

这似乎是预期的行为,因为文档中说,带有UIAlertControllerStyleActionSheet的警报控制器是在当前上下文中显示的。考虑到键盘位于另一个窗口中,它不会与显示视图控制器共享上下文


在我的项目中,我决定使用旧的UIActionSheet,它通过键盘显示没有问题。不过,如果有关于UIAlertController的建议,也可以随意发布。

问题不再重复。很可能是我自己修好的 或需要视图控制器的特殊层次结构。如果我们假设这个问题在某些情况下仍然可以重现,我可以建议:

  • 显示
    UIAlertController
    时,通过调用
    UIView.endEditing(true)
    隐藏键盘,其中视图等于
    UIViewConroller.view
    或可编辑视图(例如
    UITextView

  • 如果之前通过调用
    UIView.becomeFirstResponder()显示键盘,则在关闭
    UIAlertController
    后显示键盘,其中视图在第一步编辑


  • 我们可以尝试以更一般的方式执行这些步骤,比如创建扩展或子类化
    UIAlertController
    。但我认为我们不应该把事情复杂化

    最后一分钟的赏金恐慌?:-)你能详细说明一下怎么做吗?如何隐藏键盘,更有趣的是如何使用与以前相同的第一响应程序显示键盘?对于赏金,你必须展示一些代码并论证为什么你的解决方案是最合适的。1。隐藏键盘并不困难:[[UIApplication sharedApplication]sendAction:@selector(resignFirstResponder)to:nil from:nil forEvent:nil];2.寻找当前的第一反应者:但是,我认为这不是一个优雅的解决方案。这不是悬赏恐慌:)我今天才看到这个问题。当然我会提供一些代码,你确定这仍然是一个问题吗?我无法复制它。参见示例项目:您完全正确。我甚至在Xcode 6.0.1和simulator 8.0中进行了尝试,它在那里也正常工作。不知道为什么在我的项目中它对我不起作用。。。调整你的答案并得到一些分数。可能重复