NSTextViewでのタブ幅の設定

べたテキストを扱う前提で。 NSTextViewのawakeFromNibで、

  1. NSMutableParagraphStyleのsetTabStops:に空のNSArrayを渡す。
  2. NSMutableParagraphStyleのsetDefaultTabInterval:にタブ幅をfloat値で渡す。
  3. NSTextViewにsetDefaultParagraphStyle:で弄ったNSParagraphStyleを渡す。

後からタブ幅を変更する際にはNSTextStorageにaddAttributes:range:で全体に適用しなおす必要がある。

タブ幅を文字数で設定するには、NSFontのpointSizeではなく、maximumAdvancementのwidthを文字数倍するのが正しい、っぽい。