如何在警报中添加网址?

时间:2016-09-11 16:51:07

标签: swift nsurl uialertcontroller

是否有方法为寻找其他信息的用户添加网址?我的提醒看起来像这样

exit

我们的想法是将它们重定向到网页并关闭应用程序中的UIAlertController

2 个答案:

答案 0 :(得分:7)

您无法向UIAlertController添加任意接口。标题和消息不可点击。您无法添加更多文字。而是添加另一个按钮(UIAlertAction),将它们定向到网页。要么是这样,要么使用其他接口而不是UIAlertController(例如,你可以把一个呈现的视图控制器看起来像一样警告)。

答案 1 :(得分:0)

let alert = UIAlertController(title: "Default Title", message: nil, preferredStyle: .alert)
let textView = UITextView()
textView.autoresizingMask = [.flexibleWidth, .flexibleHeight]

let controller = UIViewController()

textView.frame = controller.view.frame
controller.view.addSubview(textView)
textView.backgroundColor = .clear

alert.setValue(controller, forKey: "contentViewController")

let height: NSLayoutConstraint = NSLayoutConstraint(item: alert.view, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1, constant: 150)
alert.view.addConstraint(height)

let attributedString = NSMutableAttributedString(string: "http://movies.com")
let url = URL(string: "http://movies.com")

attributedString.setAttributes([.link: url ?? ""], range: NSMakeRange(0, attributedString.length))


textView.attributedText = attributedString
textView.isUserInteractionEnabled = true
textView.isEditable = false

// Set how links should appear: blue and underlined
textView.linkTextAttributes = [
    .foregroundColor: UIColor.blue,
    .underlineStyle: NSUnderlineStyle.single.rawValue
]

let okAction = UIAlertAction(title: "OK", style: .default) {
    UIAlertAction in
}
let cancelAction = UIAlertAction(title: "Cancel", style: .cancel) {
    UIAlertAction in
}

alert.addAction(okAction)
alert.addAction(cancelAction)

present(alert, animated: true, completion: nil)

从这里:https://overcoder.net/q/1502030/кликабельный-url-на-uialertcontroller