我的所有UIAlertController消息都变成了单行

Bat*_* C. 3 swift uialertcontroller

我不确定这是否是罪魁祸首,但我对这个项目所做的最大改变是几天前升级到Swift 4.我知道我的UIAlertController消息在需要时显示多行,但今天我偶然意识到它们都变成了单行并且最后有省略号.由于我从API显示这些消息,我不能使用"\n".代码很简单;

let alert = UIAlertController(title: "Title", message: "Long message that must be shown as multiline", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default, handler: { (action: UIAlertAction!) in
    alert.dismiss(animated: true, completion: nil)
}))
present(alert, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

我检查了一些其他相关的问题,但没有一个对我有效.这个问题最近被问到同样的问题,但没有得到答案,并且有一个hacky解决方案作为解决方案发布;

所有警报对话框消息和textField都已更改为单行.请检查图像

任何有关检查内容的建议都非常感谢.

Bat*_* C. 7

不知道为什么倒下,但我已经发现了3天后把头发拉出来的问题.在我使用的第三方Pod之一中有一个UILabel扩展.它的代码标记为"已锁定",所以我认为这就是为什么它之前没有显示在搜索结果中.我必须从他们的存储库下载所有pod的源代码并在里面搜索.它覆盖了默认UILabel的这些函数和属性,而不是创建自己的UILabel子类;

override open func draw(_ rect: CGRect) {}
override open var intrinsicContentSize: CGSize {}
Run Code Online (Sandbox Code Playgroud)

由于UIAlertViewController使用UILabel来显示消息,我试图注释掉这些行,我的问题就消失了.如果有人遇到同样的问题,请在代码和嵌入式库源代码中搜索UILabel扩展.