質問

私はテキストのかなりの量でNSTextViewを持っています。私はしかしスクロールするたびに、表示が正しく更新されません。トップまたはビューの下部に残っているいくつかのアーティファクトがあります。ビュー自体は十分な頻度で更新されないことが表示されます。私は非常にゆっくりスクロールするとビューは、しかし、正しく更新されます。私はすべてが完璧に動作ビューに境界線を追加した場合、ボーダレスビューは、問題を有するものです。ここでは、スクリーンショットへのリンクです。

おかげ

役に立ちましたか?

解決

あなたはsetDrawsBackgroundまたはcopiesOnScrollのいずれかのためにNSScrollViewNSClipView propertesを設定することがありますか?

私は示唆している最初の事はNSScrollViewのプロパティ「の背景を描画する」をオフにしています

[myScrollView setDrawsBackground:NO];

これはNSScrollViewに設定する必要があることに注意してください、とのないの組み込みNSClipViewでます。

<のhref = "http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/nsscrollview_Class/Reference/Reference.html#//apple_ref/occ/instm/NSScrollViewからの抜粋/ setDrawsBackground:」のrel = "noreferrer">ドキュメントのが関連している可能性がある。

  

あなたのNSScrollViewNSClipViewsetDrawsBackground:のパラメータでNOメッセージを送信NSScrollViewを囲むNSClipView setCopiesOnScroll:のパラメータを持つNOメッセージを送信する追加の効果を持っている場合。それがスクロールされるようにドキュメントビューで「コース」(前図の痕跡)の出現であろう代わりsetDrawsBackground:に直接NSClipViewメッセージを送信するの副作用

他のヒント

テキストフィールドにもスクロールエリアにはないように見える...あなたは必ず何かイマイチそれをオーバーラップしていますか?

私は同様の問題があった - NSTextViewが別のscrollview(。つまり、NSTableView)に埋め込まれている場合は、アーティファクトの開発

私は実際には、のsetdrawsbackground のオン、そしてそれが再び消えるように素敵な色を追加しました。

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

このスクロールホイールのイベントとの組み合わせで、私はNSTableViewにNSTextViewを使ってみましょう。

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

私はいくつかの時間前に同じ問題がありました。私はそれを解決したか覚えていません。

スーパービューがカスタムビューがある場合は別のビューにNSTextViewを配置してください。ただ、何が起こるかを確認します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top