2016-07-03 15 views
2

検出可能なリンクを持つUITextViewを作成しましたが、UITextView代理関数 'shouldinteractwithURL'を使用することができません。UITextViewDelegate関数はXcode 8.0のURLと対話する必要があります

インスタンスメソッドが他のインスタンスメソッドとほぼ一致するという警告が表示されます。私はデリゲート関数を見てきましたが、 'shouldinteractwithURL'関数はios 10.0用に更新されましたが、ios 9と互換性のある関数のバージョンを使用したいと思います。しかし、新しいバージョンを使用して、私は同じ警告を受け取り、関数はまだ呼び出されません(私はtextviewデリゲートを正しく送信しました)。

Xcodeが示唆している解決策は、関数をプライベートにするか@nonobjcを追加することです。リンクがクリックされても、これらのどちらも機能しません。

他に誰かがこの問題を抱えていたのですが、これはXcode 8.0の問題ですか?

答えて

6

@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 
} 
+0

これは働いていた、感謝を! – user2562126

関連する問題