Swift

Swift:appendAttributedStringの属性変更

appendAttributedStringの中の特定文字列を削除したり、属性を変更することができます。

なぜ、そんな必要がでてきたかというと、表示している文字列の中に検索対象文字列があれば色付けを変更したかったからです。しかも、その前後の文字列の属性は元のまま残しておきたいのです。

前後の文字列の属性を覚えておき、つなぎ合わせることもできますが、setAttributesを使えば、比較的に簡単に狙い通りのことができます。たとえば次のようにClassだけ色を変えられます。

Screenshot 2016-03-02 23.14.21

  • let wAtt:NSMutableAttributedString = NSMutableAttributedString()    //初期設定。
  • wAtt.appendAttributedString(cm.mqArrayContent[row][widentifier] as!
  • NSAttributedString)//wAttに表のカラムデータをsetする。
  • var wRange:NSRange  = NSRange(location:0, length:2)//絵文字削除のための設定
  • wAtt.replaceCharactersInRange(wRange, withString:””) //絵文字を削除する。
  • wRange = NSRange(location: wX.rOne.characters.count+0, length:
  • wSearch.characters.count)//検索文字列の開始位置と長さをsetする。
  • wAtt.setAttributes([NSForegroundColorAttributeName:NSColor.whiteColor(),
  • NSBackgroundColorAttributeName:NSColor.magentaColor()], range:wRange)//Classだけマゼンタの背景に白抜きにする。

 

Categories: Swift, 技術