2009-05-11 5 views
6

グリーティング、スクロール時にNSTextViewが正しくリフレッシュされない

私は相当量のテキストを持つNSTextViewを持っています。しかし、私がスクロールすると、ビューは正しく更新されません。ビューの上部または下部に残っているアーティファクトがいくつかあります。このビューは、しばしば十分にリフレッシュされないようです。非常にゆっくりとスクロールすると、ビューは正しく更新されます。ビューに境界線を追加すると、すべてが完全に機能します。境界線のないビューは問題があります。ここでは、スクリーンショットへのリンクです:あなたはそれを重ね合わイマイチわから何かが

http://img216.imageshack.us/img216/8193/picture13s.png

おかげ

+0

誰でもこの問題が解決された理由を説明できますか?それは私にとっては妥当な質問のようです。 –

+0

dw I upvoted to counter:P +1 –

答えて

6

NSScrollViewまたはNSClipViewのいずれかに対してsetDrawsBackgroundおよびcopiesOnScrollのプロパティを設定しましたか?

[myScrollView setDrawsBackground:NO]; 

これはNSScrollViewに設定されるべきであることに注意してください、そして組み込みNSClipViewない:私はお勧めし

最初の事はNSScrollViewのプロパティ「背景を描く」オフにされます。

documentationからの次の抜粋は、関連する可能性がある:

あなたがNSScrollViewNSScrollViewからNOのパラメータでsetDrawsBackground:メッセージを送信NSClipViewを囲む場合にNSClipViewsetCopiesOnScroll:メッセージを送信する追加効果がありますパラメータはNOです。 setDrawsBackground:メッセージをNSClipViewに直接送信する副作用は、スクロールされるときに、ドキュメントビューに「トレイル」(前の図の痕跡)が現れることになります。

+1

なぜdownvote? –

+4

私はちょうどこの厳密な問題を自分で見つけました。 '[scrollView setDrawsBackground:YES]を設定すると、アーティファクトの問題が修正されました。他のニュースでは、解決策を探すときにあなた自身の答えを見つけることは非常に奇妙な感じです:) –

2

は、テキストフィールドのように見えますが...でも、スクロールエリアにされていませんか?

+0

わかりません、いいえ。私が下にスクロールすると、スクロールコントロールの下部に合わせてテキストが表示されます。ゴミは消え、テキストの明瞭なレンダリングに置き換えられます。 – EightyEight

+0

あなたはxibを再設定しようとしましたか?時にはそれが私を助けます。 –

0

私は以前も同じ問題を抱えていました。私はそれをどのように解決したのか覚えていない。

スーパービューがカスタムビューの場合は、NSTextViewを別のビューに配置してください。ちょうど何が起こるか見るために。

+0

私はそれを与えるでしょう。私はこの問題の唯一の人ではないことを知ってよかった。 – EightyEight

1

NSTextViewが別のスクロールビュー(つまりNSTableView)に埋め込まれているときに、同様の問題が発生しました。

実際にに設定してから、もう一度消えるように素敵な色を追加しました。

-(void)awakeFromNib{ 
    NSScrollView *scroll = [self enclosingScrollView]; 
    [scroll setBorderType:NSNoBorder]; 
    [scroll setDrawsBackground:YES]; 
    [scroll setBackgroundColor:[NSColor windowBackgroundColor]]; 
} 

scrollWheelイベントと組み合わせて使用​​すると、NSTableViewでNSTextViewを使用できます。

-(void)scrollWheel:(NSEvent *)theEvent{ 
    NSScrollView *scroll = [self enclosingScrollView]; 
    [[scroll superview] scrollWheel:theEvent]; 
}