21. UIAlertView 与输入框结合使用时的一个坑
Last updated
Was this helpful?
Last updated
Was this helpful?
作者:
相信 UIAlertView
大家应该都很熟悉,但是最近遇到一个坑。
由于历史原因,项目中还在大量使用 UIAlertView。某天测试过来反馈说,评论框字符长度超过最大长度时,点击发送,弹出一个 alert
提示,点击确定后,评论框无法在被激活,也就是没法弹出键盘了。很是怪异,debug
无果,搜了一下 stackoverflow
,发现有人遇到过类似的问题,可以点击末尾的参考链接来查看具体详情。
他给出的解决方案就是把这种情况下的 UIAlertView 换成 UIAlertController。试了下这种方式,果然是可行的,由于之前 UIAlertView 是不依赖其它视图层级的,创建后直接 show
就可以了,所以很多地方直接写在了非视图控制器类中。在换成 UIAlertController 之后,由于它是继承自 UIViewController 的,所以必须要有 VC 把它 present
起来。解决方案也很简单,写一个 UIViewController 的分类获取当前顶部可见的 ViewController,然后在上面 present
出 UIAlertController 即可,获取顶部可见 ViewController 的代码随便一搜就可以找到,这边就不贴了。
PS:UIAlertController 是 iOS8 以后才提供的,不过相信大家也不用适配 iOS8 之前的系统了吧😂。如果还要适配,那就只能做版本区分了。。。