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

2024-05-06

我不确定这是否是罪魁祸首,但我对这个项目所做的最大改变是几天前升级到 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)

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

所有警报对话框消息和文本字段已更改为单行。请检查图像 https://stackoverflow.com/questions/46212166/all-the-alert-dialog-message-and-textfield-have-been-changed-to-single-line-ple

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


不知道为什么有人投反对票,但我在拔掉头发三天后发现了这个问题。我一直在使用的第 3 方 Pod 之一中有一个 UILabel 扩展。它的代码被标记为“锁定”,所以我认为这就是它之前没有出现在搜索结果中的原因。我必须从所有 Pod 的存储库中下载源代码并在内部进行搜索。它重写了默认 UILabel 的这些函数和属性,而不是创建自己的 UILabel 子类;

override open func draw(_ rect: CGRect) {}
override open var intrinsicContentSize: CGSize {}

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我的所有 UIAlertController 消息都变成了单行 的相关文章

随机推荐