UITextViewDelegate函数应该与Xcode 8.0中的URL交互

时间:2016-07-03 13:47:53

标签: xcode swift uitextview

我创建了一个带有可检测链接的UITextView但是我无法使用UITextView委托函数'shouldinteractwithURL'。

我收到警告,实例方法几乎与另一个实例方法匹配。我已经查看了委托函数,并且已经为ios 10.0更新了'shouldinteractwithURL'函数但是我想使用与ios 9兼容的函数版本。但是,即使我使用新版本并设置了部署目标到了ios 10,我得到了相同的警告,但仍未调用该函数(我已正确发送了textview委托)。

Xcode建议的解决方案是将函数设为私有或添加@nonobjc。这些都不起作用,所以点击链接时没有任何反应。

是否还有其他人遇到此问题,或者这是Xcode 8.0的问题?

1 个答案:

答案 0 :(得分:7)

添加@availability属性后,这将编译没有错误:

//For iOS 7...9
@available(iOS, deprecated: 10.0)
func textView(_ textView: UITextView, shouldInteractWith url: URL, in characterRange: NSRange) -> Bool {
    var result = false
    //...
    return result
}

//For iOS 10
@available(iOS 10.0, *)
func textView(_ textView: UITextView, shouldInteractWith url: URL, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool {
    var result = false
    //...
    return result
}