3

プログラムでスクロールするために NSScrollview を使用しています。水平および垂直スクローラーを非表示にしましたが、ユーザーはマウス ホイールを使用してスクロールできます。この手動スクロールを防止したいと考えています。

これは私が自動スクロールをしている方法です

- (IBAction)scrollToMidAnimated:(id)sender
{
    [NSAnimationContext beginGrouping];
    [[NSAnimationContext currentContext] setDuration:2.0];
    NSClipView* clipView = [self.scrollView contentView];
    NSPoint newOrigin = [clipView bounds].origin;
    newOrigin.y = [self.scrollView contentView].frame.size.height/2.0;
    [[clipView animator] setBoundsOrigin:newOrigin];
    [NSAnimationContext endGrouping];
}

それは完全に機能しますが、ユーザーが手動でスクロールできないようにしたいです(プログラムでスクロールしたいだけです)。それを行う方法はありますか?

4

3 に答える 3

4

このようにしてカスタムスクロールビュークラスを作成し、以下のコードを含めてください:-

    - (void)scrollWheel:(NSEvent *)theEvent
    {
    [[self nextResponder] scrollWheel:theEvent];
     }
于 2013-11-06T08:33:22.313 に答える
0

最後に解決策を見つけました。NSScrollView をサブクラス化し、そのメソッド scrollwheel をオーバーライドして空のままにしました。

- (void)scrollWheel:(NSEvent *)theEvent
{
    // Do nothing
}
于 2013-11-06T08:05:13.107 に答える