我在一个项目上进行编码是用户按下按钮,然后在按钮下的textview(名为textoutput)中,程序随机从我名为textinfo的数组中获取链接。当您第一次按下按钮并按下链接时运行项目时,右侧链接会在Safari中打开,但第二次按下按钮并显示一个新的随机选择的链接,按下链接时会打开第一个链接,不是那个被按下的人。每按一次按下新链接时只打开第一个链接的按钮,此操作就会继续。
@IBAction func Frukostaction(sender: UIButton) {
let random = Int(arc4random_uniform(19))
textoutput.text = textinfo[random]
}
如何修复此问题?提前谢谢。
答案 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
}