Text View (NSTextView)
ここには Text View に関することを書いていく。
Text View 自体の設定は、Interface Builder でできることが多いので、あまり扱わない。
NSRange.new(location,length) Text View に対していろいろ属性を付けるときに範囲を指定するが、NSRange で指定する。
range = NSRange.new(0,0)
ただ、RubyCocoa では NSRange のところを配列で代用できる([location,length])。だから、上の例は [0,0] で置き換えてもかまわないはず。
setBackgroundColor(color) 背景の色を指定する。色については、色の扱いを参照。
@textView.setBackgroundColor(NSColor.yellowColor)
setFont(font) フォントを指定する。
@textView.setFont(NSFont.fontWithName_size("Lucida Grande",14.0))
setString(string) 表示する文字列を指定する。これを使うと、すべてのテキストを置き換えることになる。
@textView.setString("text")
setTextColor(color) Text View 全体の文字に色をつける。
@textView.setTextColor(NSColor.blackColor)
setTextColor_range(color,range) 範囲を指定して、文字に色をつける。
@textView.setTextColor_range(NSColor.blackColor,range)
insertText(string) 文字列を選択範囲に挿入する。Text View で選択してある文字のところか、カーソルのあるところ、
あるいは、下の setSelectedRange で範囲を指定してそこに挿入する。
@textView.insertText("Inserting Text")
setSelectedRange(range) 選択範囲を指定する。
@textView.setSelectedRange(range)
全体のテキストを置き換える場合は、まず、テキストの長さを得てから、それで選択範囲を指定して挿入すればいい。
@textView.setSelectedRange([0,@textView.string.length)
@textView.insertText("Inserting Text")
Note: setString(string) と insertText(string) の違いはいろいろあるのかもしれないけど、今まで気づいた中で一番大きなものは、
setString だと Text View に元々組み込まれている undo が効かないが、insertText だと効く。なので、何か処理をしたものを
簡単に undo 処理したければ、insertText を使う。
setSelectedRanges(array) 選択範囲を複数指定する。
@textView.setSelectedRanges(ary)
selectedRange 選択されているテキストの範囲を得る。NSRange オブジェクトが返る。
selectedTextRange = @textView.selectedRange
selectedRanges 選択されているテキストの範囲を得る。NSRange オブジェクトの配列が返る。
selectedTextRanges = @textView.selectedRanges
scrollRangeToVisible(range) 指定範囲まで Text View を移動して表示する。NSRange オブジェクトで指定する。
これを使って、読み込んだテキストを insertText で表示させた後にテキストの頭を表示させるようにもできる。
@textView.scrollRangeToVisible([0,0])
RTFFromRange(range) 指定範囲のテキストをリッチテキストとして NSData に変換する。
これは NSText のメソッドだけど、NSTextView は NSText のメソッドを継承してるので使える。
textData = @textView.RTFFromRange(0,@textView.string.length)
readRTFDFromFile(path) 指定したパスの .rtf もしくは .rtfd ファイルを読み込んで Text View に表示する。
これも NSText のメソッドだけど、NSTextView は NSText のメソッドを継承してるので使える。
@textView.readRTFDFromFile(path)