私はUITextView
を持っており、それをタップしてテキストの単語を選択することができます。タップされている場合は、NSForegroundColor
属性を変更することにより、単語が色で強調表示されます。 再度タップすると、色をテキストカラーに戻して選択を解除します。属性付き文字列の色が変更された単語を取得する
今、私はUITextView
のすべての選択された単語を知る必要があります。
最初のアイデアは、特殊文字であるすべてを削除し、スペースでテキストを分割することでした。次に、色属性が選択された/強調表示された各別の単語の色と等しいかどうかを確認します。 しかし、属性付き文字列は、文字の分割やコンポーネントの削除を許可していません。どちらもNSAttributedString
です。
2番目のアイデアは、強調表示された部分の範囲を配列に保存し、強調表示された部分を取得するために反復処理することでした。しかし、これは私にとってはやや複雑すぎるようです。特に、配列で保証されていない単語の正しい順序が必要なので、各タップで追加/削除してください(例:テキストは次のようになります。テスト」
Tap this -> index 0
Tap test -> index 1
Tap this -> test becomes index 0
Tap this -> this becomes index 1
その後、順番はもう良いではありません。
私はすでに起因する文字列の色を取得する方法を考え出した。それは問題ではない。
どのように反復処理することができます原因となった文字列を分析し、色が変わった単語や、この問題を解決する最善の方法を見つけ出しますか?
ありがとうございました!
挨拶
ありがとう、魅力のように動作します! –