2017-05-23 5 views
0

私は文字列の配列を持っています[apple,mango,banana,kiwi,orange] 最後の単語が配列内の単語のいずれかと一致する場合にユーザーが入力している間に、下線付きでタップジェスチャそれに。 私が使用しています。この exapmleを行う方法テキストを属性付きテキストに置き換えて操作を追加

  func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool { 
let lastword = textviewtext.lastword()//i have last word i have to replace 

     if myarray.contains(lastword) { 
    //here code for replacing the text and underline it and add tap gesture 
    } 

- ユーザーが入力した場合 - ここではオレンジやリンゴに下線をしなければならない「オレンジリンゴは健康に良いです」とタップがいくつかで有効にする必要があります「オレンジタップ」または「リンゴタップ」のアクションアラート

答えて

1

特定の単語に下線を引くには、rangeOfStringを使用して、テキストビューで単語のNSRangeを取得し、新しい属性付き文字列を作成します。テキストビューに適用します。ここでは例です:単語をタップしたとき

let at = NSMutableAttributedString(string: textView.text) 
words.forEach { word in 
    if let range = textView.text.range(of: word) { 
     at.addAttribute(NSUnderlineColorAttributeName, value: UIColor.red, range: range) 
    } 
} 

textView.attributedText = at 

this answerを参照してください、認識するために。

+0

ユーザーがテキストを入力している間にこれを実行する方法 –

+0

@AkashShindhe既に – brimstone

+0

のメソッドにこのコードを挿入すると、 'Range '(別名Range ')を予想される引数型' NSRange '(別名' _NSRange ')に変換します –

関連する問題