-1

хорошо так считать, нижеприведенный текст, как это внутри TextViewнабор действий (жест распознаватель) на текст, который находится внутри TextView

bla bla bla bla bla bla 
bla bla bla bla bla bla 
bla bla bla bla bla bla 
bla bla  *doAction* 

У меня есть некоторый текст, который я показываю в моей TextView и я хочу чтобы вызвать действие, когда какой-либо желаемый текст используется пользователем в приведенном выше примере, я хочу запускать и действовать, когда пользователь нажимает на doAction. я не знаю, как я это сделаю, и даже если это возможно или нет, я знаю, как я могу поместить ссылку на свой текстовый файл, но здесь это не тот случай. кто-нибудь может вести меня, как я собираюсь достичь этого?

p.s. если вопрос недостаточно ясен, тогда дайте мне знать, я исправлю это.

ответ

1

В принципе, вам нужно добавить распознаватель жестов, чтобы получить точку перехода в вашем текстовом виде. UITextView подкласс, выполняющий блок, когда пользователь удаляет указанное слово или фразу.

Попробуйте демо: -

Objective CHBVLinkedTextView

SwiftSwiftTextViewHashtag

+0

хорошо, это именно то, что я ищу, но на ObjC есть только одно. я попытаюсь преобразовать его, так как я не человек ObjC, все равно спасибо большое –

+0

@remyboys Зачем его преобразовывать? Вы можете просто добавить его в свой проект и использовать его в swift обычно – Tj3n

+0

, чтобы я мог видеть, что на самом деле происходит там @ Tj3n –

2

1) Использование attributedString, вы можете достичь желаемого поведения. Ниже приведен пример: -

@IBOutlet weak var terms: UITextView! 

    let privacyURL = "http://www.programmincrew.in"; 

override func viewDidLoad() { 
    super.viewDidLoad() 

    self.terms.delegate = self 
    let str = "By using this app you agree to our Terms and Conditions and Privacy Policy" 
     let attributedString = NSMutableAttributedString(string: str) 
    let foundRange = attributedString.mutableString.rangeOfString("Privacy Policy") 
    attributedString.addAttribute(NSLinkAttributeName, value: privacyURL, range: foundRange) 
    terms.attributedText = attributedString 
    } 



    func textView(textView: UITextView, shouldInteractWithURL URL: NSURL, inRange characterRange: NSRange) -> Bool { 
if (URL.absoluteString == privacyURL) { 
      let myAlert = UIAlertController(title: "Conditions", message: nil, preferredStyle: UIAlertControllerStyle.Alert) 
      myAlert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil)) 
      self.presentViewController(myAlert, animated: true, completion: nil) 
     } 
     return false 
     } 

2) Установите dataDetectorTypes свойство пФ UITextView в UIDataDetectorTypeLink.

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