在textview中打开链接

时间:2015-01-27 20:21:04

标签: xcode url swift random textview

我在一个项目上进行编码是用户按下按钮,然后在按钮下的textview(名为textoutput)中,程序随机从我名为textinfo的数组中获取链接。当您第一次按下按钮并按下链接时运行项目时,右侧链接会在Safari中打开,但第二次按下按钮并显示一个新的随机选择的链接,按下链接时会打开第一个链接,不是那个被按下的人。每按一次按下新链接时只打开第一个链接的按钮,此操作就会继续。

@IBAction func Frukostaction(sender: UIButton) {


    let random = Int(arc4random_uniform(19))

    textoutput.text = textinfo[random]

} 

如何修复此问题?提前谢谢。

1 个答案:

答案 0 :(得分:0)

我通过设置UITextView.delegate然后在shouldInteractWithURL函数内手动调用openURL解决了这个问题。例如。

let links = ["http://www.google.com","http://www.yahoo.com","http://www.discovery.com"]
var textView : UITextView!
var currentLinkIndex : Int = 0


@IBAction func buttonClick(sender: AnyObject) {
    let random : Int = Int(arc4random()) % 3

    textView.text = links[random]
    currentLinkIndex = random
}

func textView(textView: UITextView, shouldInteractWithURL URL: NSURL, inRange characterRange: NSRange) -> Bool {

    let url = NSURL(string:links[currentLinkIndex])
    UIApplication.sharedApplication().openURL(url!)
    return false
}