2016-07-03 4 views
2

Я создал UITextView с обнаружимыми ссылками, однако я не могу использовать функцию делегата UITextView 'shouldinteractwithURL'.UITextViewDelegate функция shouldinteractwithURL в Xcode 8.0

Я получаю предупреждение о том, что метод экземпляра почти совпадает с другим методом экземпляра. Я просмотрел функции делегата, и функция «shouldinteractwithURL» была обновлена ​​для ios 10.0, однако я хочу использовать версию функции, совместимую с ios 9. Однако, даже если я использую новую версию и устанавливаю цель развертывания к ios 10, я получаю те же предупреждения и функция все еще не вызывается (я правильно послал делегата 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

Смежные вопросы