0
NSRectFillまたはNSBezierPath.fillRectのいずれかを使用してNSTextView内の一部のテキストをブロックする場合、テキストは長方形を超えているようです。私。上書きしようとしているテキストの後ろから矩形が覗き込まれているだけです。テキストが描画された後に、私が矩形を描くようにするにはどうすればよいですか?NSTextViewのNSRectFillがテキストで上書きされる
NSRectFillまたはNSBezierPath.fillRectのいずれかを使用してNSTextView内の一部のテキストをブロックする場合、テキストは長方形を超えているようです。私。上書きしようとしているテキストの後ろから矩形が覗き込まれているだけです。テキストが描画された後に、私が矩形を描くようにするにはどうすればよいですか?NSTextViewのNSRectFillがテキストで上書きされる
NSTextViewをサブクラス化した場合。まず、スーパーでテキストを描画し、独自のものを描画します。
- (void)drawRect:(NSRect)dirtyRect {
[super drawRect:dirtyRect];
NSRectFill(yourOwnRect);
}
これを行う正しい方法はこれだけです。コントローラーからのビューへの描画は、決して信頼できるものではなく、懸念の分離に違反します。描画はビューの仕事です。 –
ビンゴ、そのトリックをしました。私はdrawRectの中から実際に描画を試みました:以前は、座標系が他のコードとは違って、その方法と異なっていて、描画がうまく動作していないと誤って考えていました。ありがとう! – stdout