Viewに行番号の表示方法は?2009/04/12 10:35

LineNumber
AnythingPrintにはテキスト文書は行番号を付けて表示させる仕様があります。
どうやらNSRulerViewを使えば実現できそうなことが分かりましたが、詳しい説明をおこなっている文書が見つかりません。
図左下は単純にルーラを表示させたものですが、このまま印刷するとルーラ部分は印刷されません。
など、現在調査中ですが、判明したところまでを記述しますと。

まず、NSRulerViewのサブクラスを作成します。
@interface LineNumberView : NSRulerView
{
}
インスタンスを作成します。
LineNumberView *lineNumberView;
lineNumberView = [[LineNumberView alloc] initWithScrollView:scrollView];

サブクラス LineNumberView内に計算や表示などのメソッドを作成してメインから呼び出す。
取りあえずscrollViewはInterfaceBuilderで作成したものを使う、つまり図左下のNSTextViewです。

これだけの話なのですが、FontやColorなど色々な要素がありなかなか面倒で理解しきれておりません。
出来上っても複雑で説明できない可能性もありますが、今回は状況説明までで終了します。

話が少し横にずれますが、NSTextViewは巨大なクラスのようです。
これだけで、ひとつのアプリケーションと言えるほどのメソッド数が存在しております。
それでほとんどのエディタがNSTextViewを使っている理由のようです。

図右は何もしなくてもスタイルなどを簡単に表示できますし、
マウスで文字を選択してスタイル変更も動作します。