我从UIViewController中提供UIAlertController动作表:
UIAlertController sheet = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleActionSheet];
[self presentViewController:sheet animated:YES completion:nil];
这在大多数情况下都可以正常工作。除非我有键盘,否则表格会出现在键盘后面。这是预期的行为吗?是否还有其他参数需要指定或从其他地方展示?
答案 0 :(得分:1)
由于文档说UIAlertControllerStyleActionSheet的警报控制器在当前上下文中显示,因此它似乎是预期的行为。考虑到键盘位于另一个窗口中,它不与呈现视图控制器共享上下文。
出于我的项目的目的,我决定回到旧的UIActionSheet,它在键盘上显示没问题。但是,如果有关于UIAlertController的建议,请随时发布。
答案 1 :(得分:1)
问题不再可再生。可能它由fixed修复或需要特殊的视图控制器层次结构。如果我们假设在某些情况下仍可以复制此问题,我可以建议:
通过调用视图等于UIAlertController
的{{1}}或可编辑视图(例如UIView.endEditing(true)
)
在解除UITextView
之后显示键盘,如果之前显示过键盘,请致电UIAlertController
,在第一步查看视图
我们可以尝试以更一般的方式执行这些步骤,例如创建扩展或子类化UIView.becomeFirstResponder()
。但我相信我们不应该过分复杂化事情