NSTextView
オブジェクト(名前は)がすべてを実行するため、実行したいことに対してIBや検索操作を使用する必要はありませんmyTextView
。最初に強調表示する文字の範囲を作成してから、それを実行するように指示myTextView
する必要があります。
NSRange charRange = NSMakeRange( location length ); // whatever you want
[myTextView showFindIndicatorForRange:charRange];
選択範囲が範囲内にある場合は、NSScrollView
この選択範囲を表示する必要があります。電話をかける前にこれを行ってください-showFindIndicatorForRange
(下のドキュメントを参照NSTextView
):
NSLayoutManager *layout = [myTextView layoutManager];
NSRect rect = [layout boundingRectForGlyphRange:charRange
inTextContainer:[myTextView textContainer] ];
[myTextView scrollRectToVisible:rect];
そして今、あなたが望むだけ多くのハイライトされた文字列を表示するための拡張機能。すべての文字を素数の位置にマークしたいとします。(それが何に役立つのかわかりませんが、なぜそうではありませんか?)対応する範囲でNSArrayを作成します:(擬似コード!、範囲はNSValuesである必要があります!)
allRanges = { (1,1) (2,1) (3,1) (5,1) (7,1) etc.}
すべてを一緒に選択できるようになりました。
[myTextView setSelectedRanges:allRanges];
// select the 3th (zero based) entry
[showFindIndicatorForRange:[allRanges objectAtIndex:3];
これは検索メカニズム内で使用されますが、検索プロセスを使用しなくても機能します。